2011-07-13 6 views
0

レール別のリファラーの周りのコントローラーにif else ifステートメントを作成する最善の方法を見つけようとしています。最後のレールのパスを引っ張って以下のステートメントで使用する方法はありますか?私は近いと思うが完全に困惑していると思う...参照欄にreferrerが発行されていればレール

これは、サイト上の複数の場所で1つのフォームからヒットする更新アクションです。私は

def update 
    @object = Milestone.find(params[:id]) 
    if @milestone.update_attributes(params[:milestone]) 
     if request.referer == form_path 
     redirect_to root_path 
     else 
     redirect_to object2_path 
     end 
    else 
     .... 
    end 
end 

答えて

0

「form_path」置き換えるために探しています

あなたは、コントローラのどこか定義している変数form_pathですか?理解の外に、それはうまくいくように見えます。

refererを使いこなす代わりに、hidden_​​fieldをどこから来たのかに基づいてフォームに配置し、paramsハッシュからそれを引き出すことができます。コントローラで次に

hidden_field_tag :location, controller_name 

::のような

何か

if params[:location] == yadda yadda 
+0

いやはや、それは簡単だった、笑ありがとう! – jlarry

+0

これを行う際の問題は、まだフォームを偽造できるということです。 – cjibo

関連する問題