Ruby on Rails:如何拥有多个提交按钮并转到不同的方法(也许使用with_action?)

10

所以...

<%= submit_tag 'Save', :name => 'save' %>
<%= submit_tag 'Save to Library', :name => 'library' %>

那么在我的控制器中:

with_action do |a|
    a.save do

    end

    a.library do

    end
end

问题在于只有一个操作被调用...对于两个submit_tags来说都是这样的... 有任何想法吗?

或者我如何使两个按钮将表单提交到两个不同的方法?

1个回答

18
提交按钮的name属性将作为params[:commit]传递给控制器。 所以在你的情况下:
if params[:commit] == "save"
end

我运行了 puts params 命令,但参数哈希表中没有 :commit 键... =\ - NullVoxPopuli
params哈希(散列)包含什么内容? - Tanel Suurhans
1
当我使用:name时,没有:commit。如果我不使用:name,那么:commit就是按钮的文本。 - NullVoxPopuli
然后使用名称代替 :commit - Tomas Markauskas
对我来说可以运行。一直在寻找这个技巧的答案。谢谢! - Teemu Leisti
2
如果您想根据单击的按钮传递特定参数到控制器,请参见https://dev59.com/XGMm5IYBdhLWcg3wDbmo。 - emery

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接