【发布时间】:2014-12-11 01:06:49
【问题描述】:
我有一个 Rails 应用程序,我在其中列出了索引页面上的记录。 其中一列是:
<td><%= check_box_tag "event_ids[]", event.id %></td>
我在索引页底部有一个按钮:
<%= link_to 'Submit ', addinvtimes_invtimes_path, :class => 'btn btn-success' %>
我希望这段代码在 invtimes 控制器中运行:
def addinvtimes
if params[:event_ids] != nil
params[:event_ids].each do |i|
newinvtime = Invtime.new(
linetype_id: 1,
invoice_id: @invoice.id,
event_id: i.to_i
)
end
end
end
但是,即使选中了几个框,params[:event_ids] 也为零。
您不能使用索引页面提交参数吗?必须是表格吗?
感谢您的帮助!
更新 1
我尝试在调用中传递数组event_ids[]:
<%= link_to 'Submit ', addinvtimes_invtimes_path(:workorder_id => @workorder, :event_ids[] => event_ids[]), :class => 'btn btn-success' %>
但是,得到:
wrong number of arguments (0 for 1..2)
我只需要在控制器代码addinvtimes 中访问数组event_ids[]。
更新2
我要做的只是列出一堆记录并包含一个复选框列。然后在控制器中获取已检查行的 id 列表。
【问题讨论】:
-
是的,除非您使用 Javascript 来捕获点击链接的人,否则这些都需要包装在表单中。
标签: ruby-on-rails