2012-10-22 55 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

要小心,因爲這coud在你的測試中拋出各種'ActionController :: UrlGenerationError's。 – cseelus

+0

我也在尋找(並期待)一個出爐的解決方案,但這似乎很容易工作。 –

+0

@cseelus:有趣!像什麼? –