是否可以为在params中传递的提交按钮添加值?

我正在尝试向我的应用添加“预览”按钮/页面。

有没有办法为我的“post”和“preview”提交按钮添加不同的值,这些按钮在params散列中传递,以便我可以检查在控制器中按下了哪一个并相应地渲染视图?

这是最好的方法吗?

params哈希的键只是元素的name值。

如果您有两个名为“submit”的按钮,一个value="post"value="preview" ,那么您可以执行以下操作:

 if params[:submit] == "preview" 

您可以使用javascript添加按钮单击事件,该事件将填充隐藏值并将其与其余参数一起传递。 如果使用jQuery:

 $("#post_button").click(function() { $("#form_action").val("post"); }); $("#preview_button").click(function() { $("#form_action").val("preview"); }); 

然后,您可以使用params['form_action']访问控制器中的操作