submit_forにURLを渡すにはどうすればよいですか?私はそれぞれのボタンが各コントローラのアクションを指し示す一つのフォームを使用しようとしています。一つは検索で、もう一つは作成です。同じフォーム上に異なるアクションを持つ2つの送信ボタンを持つことは可能ですか?提出用の複数のコントローラアクションを持つform_for
答えて
押されたボタンに応じてフォームを異なるURLに送信する単純な方法はありません。各ボタンでjavascriptを使用して別のURLに送信することもできますが、このような状況を処理する一般的な方法は、フォームを1つのURLに送信し、コントローラアクションでどのボタンが押されたかを検出できるようにすることです。このような送信ボタンと第二のアプローチについては
:
def create
if params[:first_button]
# Do stuff for first button submit
elsif params[:second_button]
# Do stuff for second button submit
end
end
は、両方のアプローチについての詳細はthis similar questionを参照してください。
<%= form_for @people do |f| %>
# form fields here
<%= submit_tag "First Button", :name => 'first_button' %>
<%= submit_tag "Second Button", :name => 'second_button' %>
<% end %>
あなたの行動は、次のようになります。
また、マルチボタンフォームのRailscast episode 38を参照してください。
それは私がちょうどaforementionned質問にいくつか答えはまた、ルートに制約を追加することを提案するので、あなたはへのルートクエリを実際にできることhiglightしたかった
少し違うのですけれどもこの質問は、this oneに非常によく似ています異なるコントローラアクション!私たちは、レールに高度な制約を使用して解決作者へ
クレジット、vss123
。
アイデアは同じパス(したがって同じ名前のルート& アクション)を持ちますが、異なるアクションにルーティングする制約があります。
resources :plan do
post :save, constraints: CommitParamRouting.new("Propose"), action: :propose
post :save, constraints: CommitParamRouting.new("Finalize"), action: :finalize
end
CommitParamRoutingは、メソッドの一致を持つ単純なクラスですか? は、コミットパラメータが指定されたインスタンスattrと一致する場合にtrueを返します。 値。
これはgem commit_param_matchingとして利用できます。
注意を再配置するように調整CSSでの検索のために別のフォームを使用することをお勧めしたいです –
- 1. Rails API:1つのリクエスト、複数のコントローラアクション
- 2. 角4 - 複数のフォームを持つフォーム - 提出データ
- 3. form_forは2つのリンクで提出されています。
- 4. 複数の提出
- 5. jQuery複数のフォーム提出
- 6. 同じ 'name'属性を持つ複数の入力フィールドを提出する
- 7. 複数の出力を持つAVCaptureSession?
- 8. 複数の出力を持つテンソルフローseq2seq
- 9. 複数の出力を持つバックプロパゲーション
- 10. 提出エラーから複数の選択値を保持する
- 11. webpack:複数のファイルタイプ出力を持つ複数の入力
- 12. Rails:複数のパラメータをform_forに渡す?
- 13. 複数のオプションパラメータをコントローラアクションに渡す
- 14. 複数の出力を持つファンクションを使用する
- 15. はボタン一つで複数のフォームを(予防デフォルト)を提出
- 16. Yii - 1つのフォーム提出の複数のレコード
- 17. 複数のファイルコントロールを含むフォーム提出
- 18. 複数フォームの提出を避ける
- 19. 複数のチャートを持つ複数のチャートを持つd3
- 20. フォーム提出を使用して同じフィールド名を持つ複数のドキュメントをアップロード
- 21. 複数の列を持つUITableView用の複数の列ヘッダー
- 22. 複数のクラスを持つ汎用
- 23. 複数の異なる出力を持つ1つのドロップダウンメニュー
- 24. 複数のフォーム提出と認証
- 25. コントローラアクションの出力をキャプチャ
- 26. AJAXを使用して複数の引数を持つCFCを呼び出す
- 27. FluentValidationで複数のパラメータを持つ関数を呼び出す
- 28. 複数のパラメータ値を持つテンプレート関数を呼び出す
- 29. 複数のargを持つ関数を呼び出す
- 30. 複数の出力を持つVB関数
は*、ネイティブなアプローチを使用して、物事をシンプルに保つ** JS ** *アクションURLを管理することができ、同意します。私は、フォームのアクションURLを置き換えるJSベースの答えとは違って、このメソッドは、バックエンドに完全に依存しており、JavaScriptを無効にしているクライアントに対しても動作すること – Anatoly