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发送…