在我的Rails應用程序中,我的顯示操作中嵌套了form_for
。此表單與編輯操作中的表單相同,但它有不同的字段。Rails更新操作不會更新布爾字段
Category -> Task -> completed (boolean, check_box)
是我想要更新,但它沒有。雖然,如果我做Category -> Task -> name (string, text_field)
它更新正常。
這不起作用
<%= 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 %>
這工作
<%= 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 %>
這是一個部分,並且check_list
是一個變量,我路過
編輯: H ERE是我的模型來源:
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
您可以粘貼模型的源代碼嗎? – Dogbert
如果你刪除':reject_if'條件,它會起作用嗎? – Dogbert
是的,它在我刪除':reject_if'時起作用。 – LanguagesNamedAfterCofee