2016-08-30 5 views
0

私は、フォームの1つのフィールドに対してユーザー入力を取得し、ポップアップウィンドウを閉じることができるモデルを用意しています。これは、作成コントローラ内のrespond_toを変更することによって行うことができます。しかし、私はデフォルトの処理をしたい同じコントローラのための別のフォームを持っています。どのようにレールで代替の作成メソッドを扱うのですか

ie。通常のrespond_toフォーマットは

format.html { redirect_to @pre_production_meeting, notice: 'Pre Production Meeting was successfully created.' } 
    format.json { render :show, status: :created, location: @pre_production_meeting } 

私がポップアップフォームに必要代替私はこれを行うことが一つの方法は、変数を設定して、そのような権利応答を選択することです知っている

format.html { redirect_to controller: 'shared', action: 'window_closer', notice: 'attachment was successfully updated.' } 
format.json { render :show, status: :ok, location: @pre_production_meeting } 

です

if $form = '1' then 
    (first format option) 
else if $form = '2' then 
    (second format option) 
end 

としてそれはそれを行うための最善の方法であるか、または作成DEFと同様に機能するが、変更形式となり、別のDEFを作成する方法はありますか?もしそうなら、フォームを処理するためにcreate2メソッドをどのように呼び出すかを理解できませんでした。

+0

クリス、私は、あなたがやろうとしていることを理解していませんでした。 ELi5できますか? – amingilani

答えて

1

私はこれを行うための2つの方法を参照してください:1.この別のロジックのための新しいアクションを作成するか、2.クエリ文字列の値を渡します。

クエリ文字列に値を渡すと、ifステートメントを使用できます。

if params[:form] == '1' 
    format.html { redirect_to @pre_production_meeting, notice: 'Pre Production Meeting was successfully created.' } 
else 
    format.html { redirect_to controller: 'shared', action: 'window_closer', notice: 'attachment was successfully updated.' } 
end 

(注意:あなたが$とそれを前に付けているので、それはグローバル変数である変数として、あなたの質問に$formを使用しますが、そのようにRubyでグローバル変数を使用することはほとんどない彼らは、コードは非常に困難になります。

関連する問題