如何创建多个复选框并将其附加到控制器操作,如编辑或删除?

时间:2013-01-02 14:38:21

标签: ruby-on-rails ruby-on-rails-3

我创建了一个脚手架Phone,index.html.erb显示了一个包含电话列表和编辑/删除选项的简单表格。现在我想添加jquery复选框,以便我可以进行批量删除或移动操作。见附图here

有人可以给我任何关于如何做的想法/指示吗?

编辑 - 这是index.html.erb文件

<% @phones.each do |phone| %>
  <tr> 
    <td><%= phone.model %></td -->
    <td><%= phone.type %></td>
  </tr>
<% end %>

这里没有表格,所以我不确定我是否可以使用form_tag帮助器或者我是否混淆了什么?

谢谢

2 个答案:

答案 0 :(得分:2)

这将是一个起点,一个带有复选框的表格。

<%= form_tag(:controller => "phone", :action => "bulk_update", :method => "PUT") %>
 <%= check_box_tag(:blackberry) %>
 <%= label_tag(:pet_dog, "Blackberry") %>
 <%= check_box_tag(:Nokia) %>
 <%= label_tag(:pet_cat, "Nokia") %>
 <%= submit_tag("Update") %>
<% end %>

然后是一个名为bulk_update的控制器操作,您可以根据已提交的内容删除/更新记录。

编辑:您还需要在routes.rb中创建一个路径。

答案 1 :(得分:1)

将表格包裹在表单助手中。

<%= form_tag foo_path do %>
  # ...
  <% @phones.each do |phone| %>
    <tr>
      <td><%= check_box_tag "selected[]", phone.id %></td>
      <td><%= phone.model %></td>
      <td><%= phone.type %></td>
    </tr>
  <% end %>
  # ...

  <%= button_tag "Do something" %>
<% end %>

这会创建一个表单,表格的每一行都有一个复选框。将foo_path替换为您要使用的路径助手。所选复选框的值将传递给数组params[:selected]中的控制器操作,您可以根据需要使用它们。每个复选框的值将是相应id对象的phone