如何传递数组的值?选中的复选框。
在 View 中:
= check_box_tag 'user_message_ids[]', user_message.id, false
= link_to "<button>Bulk Delete</button>".html_safe, profile_message_path(user_message), :id => 'user_message_ids', :confirm => "Are you sure?", :method => :delete
我可以将提交按钮放在这个区域中吗?
喜欢这个:
= form_tag checked_messages_path do
= check_box_tag 'user_message_ids[]', user_message.id, false
--------objects---------------------------------------------
--------objects---------------------------------------------
--------objects---------------------------------------------
--------objects---------------------------------------------
= submit_tag "Delete Checked"
最佳答案
使用form_tag
block
<% form_tag delete_mutiple_items_path do %>
<table>
<thead>
<tr>
<th></th>
</tr>
</thead>
<tbody>
<% @items.each do |item| %>
<tr>
<td><%= check_box_tag "items[]", item.id %></td>
</tr>
<% end %>
</tbody>
</table>
<%= submit_tag "delete Checked" %>
<% end %>
它会将一组 ID 传递给 Controller ,例如 {"item_ids[]"=> ["1", "2", "3"]}
所以你可以用这些id做任何事情
仅供引用:http://railscasts.com/episodes/165-edit-multiple?view=asciicast
已更新(一个小陷阱)
来自这里:http://railscasts.com/episodes/17-habtm-checkboxes?view=asciicast
There is still one small problem with our update method. If we uncheck all of the checkboxes to remove a product from all categories then the update fails to remove any categories the product was in. This is because a checkbox on an HTML form will not have its value sent back if it is unchecked and therefore no
category_ids
will appear in the product’s parameters hash, meaning that thecategory_ids
are not updated.To fix this we have to modify our products controller to set the
category_ids
parameter to be an empty array if it is not passed to the update action. We can do this usingRuby's ||=
operator and add the following like at the top of the update action.
params[:product][:category_ids] ||= []
This will ensure that if none of the checkboxes are checked then the product is updated correctly so that it is in no categories.
关于ruby-on-rails - 在 ruby on rails 中选择复选框传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11965248/