什么是'rails way'让每行都有一个带有submit_tags的表单,其中submit_tag'告诉'控制器点击了哪一行的提交?
在 form_tag 中,我的表单显示了一个用户列表,每个用户旁边都有几个操作,例如“foo”和“bar”。
目前,我对这些操作使用 link_to,它添加了一个查询参数:row => this_row.guid
,因此我的控制器知道要对哪一行执行操作。它可以工作,但我不喜欢在 url 上暴露查询参数,我不喜欢它们在 URL 上的持久性,因此如果用户单击刷新,它会再次执行操作。
由于显示的行已经在表单中,我希望每个操作都是 submit_tag。但是我从 API 文档中看不到有任何方法可以向 submit_tag 的每个实例添加不同的查询参数。
当我尝试这个时:
= submit_tag "foo", {:row => this_row.guid}
= submit_tag "bar", {:row => this_row.guid}
html看起来像<input .... row='SOMEGUID' ...>
但是 POSTed 参数不包括 :row 查询参数
我也试过
= submit_tag "foo", params.merge(:row => this_row.guid)
= submit_tag "bar", params.merge(:row => this_row.guid)
具有相同的结果(包括 row=GUID,但是当用户单击提交按钮时,该参数不会发布到控制器)。
对于如何让多行提交按钮(用户可以看到相同的名称)也可以将行标识符传递给控制器,我将不胜感激。