私の場合、新規とプレビューの場合、作成と編集の両方で同じフォーム部分を使用します。部分的にはこのように見えます(私は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 によって設定される非表示のチェックボックスです。