2012-10-22 3 views
7

次のようなあなたのroutes.rbをファイルにスコープを持っている場合:現在のルートの範囲を取得するためのレール方法はありますか?

scope "/account" do 
    resources :items 
end 

現在のページは「アカウント」セクションにある場合、どのように判断することができますが? 「アカウント」セクションでは、次の項目が考慮されますか?

/account/items 
/account/item/1 
/account/item/1/edit 

は、私は、これはリクエスト変数に文字列の比較を行うことで可能である知っているが、この情報を決定する「レールウェイ」がある場合に興味がありました。

ありがとうございます。

答えて

10

私はちょうど今、同じ問題を抱えていた...私がやったことはスコープにパラメータを追加します:

scope '/me', me_scope: true do 
    # ... 
end 

私はコントローラでそれを調べることができますこの方法:

class ApplicationController < ActionController::Base 
    def me_scope? 
    params[:me_scope].eql? true 
    end 
end 

ありません最もきれいな解決策ですが、それは動作します。

+0

あなたのテストでは様々な 'ActionController :: UrlGenerationError'sが投げられるので注意してください。 – cseelus

+0

私も、ベークインされたソリューションを探していましたが(期待していましたが)、これは十分簡単に​​機能するようです。 –

+0

@cseelus:興味深い!どのような? –

関連する問題