3
我有2個控制器,1個用戶和1個管理員。如何在gem中使用命名空間Pundit
控制器/ articles_controller.rb
class ArticlesController < ActionController::Base
...
def show
@article = Article.find(parmas[:id])
authorize @article
end
...
end
控制器/管理/ articles_controller.rb
class Admin::ArticlesController < AdminController
...
def show
@article = Article.find(parmas[:id])
authorize @article
end
...
end
,我有2文件政策 政策/ article_policy.rb
class ArticlePolicy
extend ActiveSupport::Autoload
autoload :Admin
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def show?
# allow show for every user.
true
end
end
而且一個文件策略/ admin/article_policy.rb
class Admin::ArticlePolicy
attr_reader :user, :record
def initialize(user, record)
@user = user
@record = record
end
def show?
# only show if use have role manager
user.manager?
end
end
但是當我使用帳戶用戶在/ admin/articles/1 /中顯示文章時。它顯示正常,應該是「訪問被拒絕」。
如何解決這一問題? (我使用寶石專家1.10)。