Ruby on Railsの新機能ですが、問題があります。モデルを編集したフォームに応じて異なるレスポンスを返すには
私は同じモデルを編集する2つのフォームを持っていますが、更新メソッドでは、送信したフォームに応じて異なるJSレスポンスを与える必要があります。
どうすればよいですか?
Ruby on Railsの新機能ですが、問題があります。モデルを編集したフォームに応じて異なるレスポンスを返すには
私は同じモデルを編集する2つのフォームを持っていますが、更新メソッドでは、送信したフォームに応じて異なるJSレスポンスを与える必要があります。
どうすればよいですか?
入力欄にはどこから来るのかを指定してフォームにhidden
を追加するだけです。
コントローラでは、このフィールドにparams[:field_name]
でアクセスします。この隠されたフィールドを持っていた値をチェック、お使いのコントローラで
<input name="origin" type="hidden" value="foo"/>
、およびレンダリングにrender
を使用します。このようなものとしてレンダリングされます
<%= f.hidden_field :origin, :value => "this_form" %>
:
のようなものを使用してフォームを作成します。 JSレスポンス(またはあなたが特に使用するもの)。詳細はLayouts and Renderingを参照してください。
if params[:origin] == "foo"
render ...
else
render ...
end
あなたがこのことについて行くことができる2種類の方法があります。
は、フォームに隠れ変数を配置し、フォームが送信されたかを確認するために、コントローラでチェックできます。
異なる動作を処理する2つの異なるコントローラメソッドを使用することもできます。
コードの詳細がわからないと、どの方法がよりクリーンになるのかは分かりません。
だから、何が問題なのですか? – megas