使用相同的形式在两个分创建和编辑在我的情况下新的和预览。 部分看起来有点像这样(I使用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不生成按钮以形成?

一个解决办法是保持该按钮外部的部分和仅为1形式, 但如何可以有2个按钮以相同的形式?

编辑: 另一个解决方法是,其由JavaScript如果按下button_to设置并提交表单隐藏复选框,则控制器将它们分离

有帮助吗?

解决方案

HTML实际上不允许用于向嵌套形式。有些浏览器,但你会看到在其他一些疯狂的行为。是要示出的原始输出或从萤火所计算的DOM的HTML?

来处理这种情况下的优选方式是将你的button_to其他形式之外。如果你很酷与JS-唯一的选择,你可以使用link_to :method => :post和样式的链接看起来像一个按钮。

其他提示

在结束使用的

:name => 'otheraction'

在控制器然后检查是否任一

params[:commit] or params[:otheraction]

在params哈希表

我建立一个称为button_link_to宝石。

使用button_link_to方法将生成按钮标签但是没有嵌套在由形式标签

只需使用它像的link_to。

https://github.com/tonilin/button_link_to <:

您可以从这里得到更多的信息/ p>

如果你想看到一个演示: http://button-link-to.herokuapp.com/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top