在我的情况下,在创建和编辑中使用相同的表单部分新建和预览。部分看起来有点像这样(我使用 HAML)
=form_tag ({:action => params[:action]}, :multipart => true)
=text_field :newsletter, :title
=text_area :newsletter, :body
=file_field :newsletter,:attachment
-if params[:action] == "preview"
=button_to "select contacts and send", :action => "contacts"
=submit_tag "save and preview"
但在 html 输出中是
...
<input type="submit" value="select contacts and send"/>
<input type="hidden" value="rwYnZlEpWV4dR89zjgprEALBYmP0xqM3lnKt9JDLyak=" name="authenticity_token"/>
<input type="submit" value="save and preview" name="commit"/>
...
为什么 button_to 不生成 button-to 表单?
一个解决方案是将按钮保留在部分之外,并且每个表单只有 1 个,但是我怎样才能在同一个表单中拥有 2 个按钮?
编辑:另一种解决方法是如果按下 button_to 并提交表单,则由 javascript 设置一个隐藏的复选框,将它们分隔在控制器中