当资源名称与模型/控制器名称不同时,Cancan的load_and_authorize_resource

时间:2013-04-11 07:49:59

标签: ruby-on-rails resources cancan

在我的应用程序中,我有工作表控制器,型号名称为Sheet,但我的路线如下

routes.rb
 namespace :magazine do
  resources :pages, :controller => "sheets" do
    resources :articles do
     resources :comments

这样url将是magazine / page / 1 / article ...

在我的文章控制器中如何为工作表调用load_and_authorize_resource,以便我可以访问相关工作表的文章。 我试过了

load_and_authorize_resource :sheet, :class => 'Sheet', :parent => false
load_and_authorize_resource :through => :sheet 

无法访问@ sheet.articles ......

1 个答案:

答案 0 :(得分:4)

你要么:

 load_and_authorize_resource :page, :class => 'Sheet', :parent => false

您可以使用@pages

访问您的数据

或者替换为:

 load_and_authorize_resource :sheet, :class => 'Sheet', :parent => false

您可以使用@sheets

访问您的数据

在ArticlesController中,同时获取sheetarticles

load_and_authorize_resource :sheet, :class => 'Sheet'
load_and_authorize_resource :article, :through => :sheet