2011-10-18 12 views

答えて

4

入力欄にはどこから来るのかを指定してフォームに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 
4

あなたがこのことについて行くことができる2種類の方法があります。

  1. は、フォームに隠れ変数を配置し、フォームが送信されたかを確認するために、コントローラでチェックできます。

  2. 異なる動作を処理する2つの異なるコントローラメソッドを使用することもできます。

コードの詳細がわからないと、どの方法がよりクリーンになるのかは分かりません。

関連する問題