2012-05-09 287 views
0

我對Rails比較陌生,並且忙於構建具有各種訪問級別的應用程序,例如global_admin和company_admin。現在,company_admin只能訪問特定的公司,而不能訪問其他公司。檢查param是否存在

我的路線:

resources :companies do 
    resources :groups do 
     resources :users 
    end 
    end 

我創建了一個幫手來檢查訪問包含以下內容:

if params[:company_id].present? 
    @company = Company.find(params[:company_id]) 
    ... 

所以,如果我打電話,例如^ /公司/ 1 /組^ /公司/ 1/groups/1/users查詢返回true並找到company_id,但如果我打電話給^/companies/1或^/companies/2,它將返回false。如果它(或者至少似乎是)存在,爲什麼它不接收company_id?

在此先感謝!

回答

1

當您不訪問嵌套資源時,params[:company_id]會變爲params[:id]

同組的東西。如果您訪問/companies/1/groups/1,params[:id]會爲您提供該組的ID,但如果您訪問/companies/1/groups/1/users/1,則params[:id]會給您用戶的ID,而組的ID將在params[:group_id]

+0

非常好!非常感謝先生:) – user1224344

+0

不要忘記標記迪倫的回答是接受的答案:)! –

+0

沒有意識到這個功能,謝謝,完成:) – user1224344