use*_*745 3 ruby controller ruby-on-rails
我怎样才能传递数组的值?选中的复选框.
在视图中:
= 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
Run Code Online (Sandbox Code Playgroud)
我可以将提交按钮放在任何一个区域.
像这个:
= form_tag checked_messages_path do
= check_box_tag 'user_message_ids[]', user_message.id, false
--------objects---------------------------------------------
--------objects---------------------------------------------
--------objects---------------------------------------------
--------objects---------------------------------------------
= submit_tag "Delete Checked"
Run Code Online (Sandbox Code Playgroud)
Kuo*_*mmy 19
使用form_tag块
<% 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 %>
Run Code Online (Sandbox Code Playgroud)
它会将一组id传递给控制器,如{"item_ids []"=> ["1","2","3"]}
所以你可以用这些ID做任何事情
仅供参考:http: //railscasts.com/episodes/165-edit-multiple?view = ascicast
从这里:http://railscasts.com/episodes/17-habtm-checkboxes?view = ascicast
我们的更新方法仍然存在一个小问题.如果我们取消选中所有复选框以从所有类别中删除产品,则更新无法删除产品所在的任何类别.这是因为如果取消选中HTML表单上的复选框,则不会将其值发回,因此不会
category_ids将出现在产品的参数哈希中,这意味着category_ids不会更新.要解决此问题,我们必须修改我们的产品控制器,
category_ids如果未将参数传递给更新操作,则将参数设置为空数组.我们可以使用Ruby's ||=运算符执行此操作,并在更新操作的顶部添加以下内容.
params[:product][:category_ids] ||= []这将确保如果未选中任何复选框,则产品将正确更新,以使其不属于任何类别.
| 归档时间: |
|
| 查看次数: |
18987 次 |
| 最近记录: |