带有ajax的多个提交按钮

时间:2010-01-25 12:32:28

标签: ruby-on-rails

首先,我是Ruby on Rails的新手,所以如果有比我正在做的更好的练习,请告诉我。

我想要做的是拥有多个ajax提交按钮,以便对带有复选框的项目列表执行不同的操作。因此,当我选择尽可能多的复选框时,我可以选择如何处理它们。

我可以使用ajax部分解决这个问题,如下所示:

    remote_form_for :profile, :url => {:controller => 'announcements', :action => 'deactivate'}, :html => { :method => :put} do |f| 
      f.submit 'Publish', :confirm => 'Are you sure?'
#Then the list

这很有效。我现在要做的是添加另一个“提交”或按钮,这样我就可以执行多个操作,所以我想remote_form_for上的:url语句将被替换为每个按钮的类似内容。例如:

发布按钮:在某个控制器中执行某些操作。 取消激活按钮:执行另一个操作。 标记为已阅读:执行其他操作。

是否清楚?

2 个答案:

答案 0 :(得分:4)

添加尽可能多的“提交”。所有提交都将输入标记中的“name”设置为“commit”,并将值设置为标签。所以你可以通过查看提交的参数进行检查:

 remote_form_for :profile, :url => {:controller => 'announcements', :action => 'deactivate'}, :html => { :method => :put} do |f| 
      f.submit 'Publish', :confirm => 'Are you sure?'
      f.submit 'Something Else"
 # Then the list
控制器中的

def deactivate

   case params[:commit]
     when 'Publish' then do something
     when 'Something Else' then do something else

   end

end

答案 1 :(得分:2)

最后,我可以自己解决。

众所周知,ajax表单上存在多个提交按钮的错误。我使用了隐藏的解决方法,如here所述。

谢谢, 布赖恩