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
を持っており、 1つのファイルpolicies/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を使用します)。