2012-10-22 21 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:有趣!像什么? –