Ruby on rails rails表单中的多个提交按钮

Ruby on rails rails表单中的多个提交按钮,ruby-on-rails,Ruby On Rails,我试图在为产品创建对象之前实现“预览”功能。我跟随Ryan Bates railscast这样做,他通过传递一个参数:name和submit按钮来实现 <%= submit_tag 'Preview', :name => 'preview_button' %> “预览”按钮“%” 但是,在我的情况下,它不起作用,不知道为什么,可能是因为我使用的是rails 3,我说不出来,但我在用提交按钮添加:name=>“preview\u button”时没有看到任何更改。有人能给我推

我试图在为产品创建对象之前实现“预览”功能。我跟随Ryan Bates railscast这样做,他通过传递一个参数:name和submit按钮来实现

<%= submit_tag 'Preview', :name => 'preview_button' %>
“预览”按钮“%”
但是,在我的情况下,它不起作用,不知道为什么,可能是因为我使用的是rails 3,我说不出来,但我在用提交按钮添加:name=>“preview\u button”时没有看到任何更改。有人能给我推荐一个解决方案吗?

您需要添加两个具有不同名称的提交按钮

<%= submit_tag 'Submit', :name => 'submit_button' %>
<%= submit_tag 'Preview', :name => 'preview_button' %>

您需要添加两个具有不同名称的提交按钮

<%= submit_tag 'Submit', :name => 'submit_button' %>
<%= submit_tag 'Preview', :name => 'preview_button' %>

再加上Paulo的答案,根据commit param路由到不同的操作可能更好

我们解决了在rails中使用

其思想是具有相同的路径(因此具有相同的命名路由和动作),但约束路由到不同的动作

resources :plan do
  post :save, constraints: CommitParamRouting.new("Propose"), action: :propose
  post :save, constraints: CommitParamRouting.new("Finalize"), action: :finalize
end
CommitParamRouting
是一个简单的类,它有一个方法
matches?
,如果commit参数与给定实例attr匹配,则返回true。价值观


这是一个gem。

添加Paulo的答案,根据commit参数路由到不同的操作可能更好

我们解决了在rails中使用

其思想是具有相同的路径(因此具有相同的命名路由和动作),但约束路由到不同的动作

resources :plan do
  post :save, constraints: CommitParamRouting.new("Propose"), action: :propose
  post :save, constraints: CommitParamRouting.new("Finalize"), action: :finalize
end
CommitParamRouting
是一个简单的类,它有一个方法
matches?
,如果commit参数与给定实例attr匹配,则返回true。价值观


这可作为gem提供。

请包括您正在使用的控制器代码。请包括您正在使用的控制器代码。