Dans mon application Rails, j'ai un form_for
imbriqué dans mon action de show. Ce formulaire est le même que celui de l'action d'édition, mais il a des champs différents.L'action de mise à jour de Rails ne met pas à jour le champ booléen
Category -> Task -> completed (boolean, check_box)
est ce que j'essaie de mettre à jour, mais ce n'est pas le cas. Bien que, si je fais Category -> Task -> name (string, text_field)
il met à jour bien.
Cela ne fonctionne pas
<%= form_for check_list do |f| %>
<%= f.error_messages %>
<% count = 0 %>
<ol>
<%= f.fields_for :tasks do |task| %>
<li>
<%= task.label :completed, check_list.tasks[count].name %>
<%= task.check_box :completed %>
</li>
<% count += 1 %>
<% end %>
</ol>
<p><%= f.submit 'Update' %></p>
<% end %>
Cela fonctionne
<%= form_for check_list do |f| %>
<%= f.error_messages %>
<% count = 0 %>
<ol>
<%= f.fields_for :tasks do |task| %>
<li>
<%= task.label :name, check_list.tasks[count].name %>
<%= task.text_field :name %>
</li>
<% count += 1 %>
<% end %>
</ol>
<p><%= f.submit 'Update' %></p>
<% end %>
C'est une vue partielle et check_list
est une variable Je passe
Edit: H avant est la source de mes modèles:
class CheckList < ActiveRecord::Base
has_many :tasks, :dependent => :destroy
accepts_nested_attributes_for :tasks, :reject_if => lambda { |a| a[:name].blank? }, :allow_destroy => true
# Validations
validates :name, :presence => true
end
class Task < ActiveRecord::Base
belongs_to :check_list
end
Pourriez-vous coller le code source de vos modèles? – Dogbert
Cela fonctionne-t-il si vous supprimez la condition ': reject_if'? – Dogbert
Oui, cela fonctionne quand j'enlève ': reject_if'. – LanguagesNamedAfterCofee