Я работаю на рельсах 2.3.11.
У меня есть сомнения в check_box_tag
<% form_for '', :url => { :action => 'save_subcategories' } do %>
<% for cat in @categories %>
<ul class="checkboxlist" style="display:none;" rel="<%= category.id %>">
<% for category in categories %>
<li>
<%= check_box_tag "#{cat.name}[subcategory_ids][]", subcategory.id,
category.subcategories.include?(subcategory) %><%= subcategory.name.titleize %>
</li>
<% end %>
</ul>
<% end %>
<%= submit_tag "Save Subcategories" %>
Для каждой категории у меня есть список флажков подкатегорий, которыми я являюсьпытаясь сохранить с помощью одной кнопки Сохранить для всех.
Когда я отправляю форму - отправляются только те категории, в которых отмечена любая из их подкатегорий.И оно не отправляется для других категорий, чьи подкатегории, которые полностью не проверены, не отправляются через параметры.
Так в моем действии:
def save_subcategories
categories = Categoryall
for cat in categories
unless params["#{ cat.name }"][:subcategory_ids].blank?
category_to_edit = role
category.subcategories.clear
subcategories=Subcategories.find(params["#{ cat.name }"][:subcategory_ids])
category_to_edit.subcategories<<subcategories
end
end
redirect_to :action => 'index'
end
Приведенный выше код выдает ошибку, как если бы любой из моихВ категории не отмечена ни одна из подкатегорий, поскольку она не отправляет категорию даже в параметрах.