Rails – 使用复选框选择多个对象并选择要执行的操作
我希望能够为对象列表创建复选框。 然后为用户提供许多操作以对所选对象执行操作。 即删除,存档等。
我知道ryan的截屏video,但它没有解释如何为所选对象创建多个动作的链接。 它只是显示他创建了一个form_tag,其中包含一个动作的url和一个提交按钮。
我想你可以用两种方式做到这一点。
第一:您可以根据需要在一个表单中添加任意数量的按钮:
<%= f.submit "Action 1" %> <%= f.submit "Action 2" %> <%= f.submit "Action 3" %>
并且所有这些都被提交给您可以检查的一个动作:
if params[:commit] == "Action 1" do some stuff for action 1 elsif params[:commit] == "Action 2" do other stuff ... and so on end
另一种方法是使用一些js。 例如,当用户单击“操作2”按钮时,它会更改表单中的“action”参数并将数据提交给此操作。
编辑:如果是翻译过的网站,你可以这样做:
<%= f.submit (I18n.t :action_1) %>
并在控制器中:
if params[:commit] == I18n.t :action_1 ... end
在en.yml中添加:
action_1: Action 1
在pl.yml中添加:
action_1: Akcja 1
等等。
您始终可以更改提交按钮的名称。 只需查找params [:button_name]而不是params [:commit]。
您需要在控制器中使用某种方法来处理update_many对象的能力。 也许是之前的filter发送…