J'ai essayé récemment d'afficher une liste des champs modifiés avec succès lors de l'envoi d'un formulaire. Le seul problème est que mon formulaire (j'utilise un formulaire simple) ne montre pas les erreurs quand il y en a et que le formulaire ne peut pas être soumis.Problème de formulaire simple avec Rails 3
Voici mon code simplifié:
def update
@wizard.assign_attributes(params[:wizard])
# Get changed attributes
if @wizard.save
# Set the success flash with fields modified
redirect_to @wizard
else
@title = "Edition du profil"
render 'edit'
end
end
La vue:
<%= simple_form_for @wizard do |f| %>
<%= f.input :email %>
<%= f.input :story %>
<%= f.submit "Modifier", :class => "btn success small" %>
<% end %>
Le modèle:
class Wizard < ActiveRecord::Base
has_secure_password
attr_accessible :email, :story, :password, :password_confirmation, :password_digest
serialize :ranks, Array
validates_presence_of :email, :first_name, :last_name, :gender, :story
validates_presence_of :password, :password_confirmation, :unless => Proc.new { |w| w.password_digest.present? }
# Other validations here
has_one :subject, :foreign_key => "teacher_id"
ROLES = %w[teacher]
scope :with_role, lambda { |role| {:conditions => "roles_bitmask & #{2**ROLES.index(role.to_s)} > 0"} }
# Other functions here
end
Quelqu'un at-il une idée?
Merci d'avance!
Vous devriez également afficher votre code d'affichage. –
D'accord, c'est affiché – Cydonia7
Où avez-vous obtenu le 'assign_attributes' (les rails 3.1 sont spécifiques,' update_attributes' est plus communément utilisé dans les versions précédentes)? Est-ce que vous faites une assignation de masse sur l'assistant? –