Ruby on rails 在不匹配的模型和控制器名称中可以进行授权

Ruby on rails 在不匹配的模型和控制器名称中可以进行授权,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,cancan,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,Cancan,我正在使用cancan,但有点小问题 my ability.rb can :manage, Department can :manage, Review 我有两个案例,它适用于案例1,但不幸的是不适用于案例2 case 1 我的部门主管 load_and_authorize_resource :message => "Unable to read this article." Here it works because in this controller I use mo

我正在使用cancan,但有点小问题

my ability.rb
can :manage, Department
can :manage, Review
我有两个案例,它适用于案例1,但不幸的是不适用于案例2

case 1
我的部门主管

 load_and_authorize_resource :message => "Unable to read this article."
  Here it works because in this controller 
  I use model Department
 case 2



  class ReviewsController < ApplicationController


  load_and_authorize_resource :message => "Unable to read this article."
  layout 'system'
  respond_to :html, :json
  add_breadcrumb "Home", :root_url
  add_breadcrumb "Reviews", :reviews_path
  def index
   @page_title = "Reviews List"
    @reviews = Evaluate.all
  end
    def show
       @page_title = "Review setting of selected Job title"
       @review = Evaluate.find(params[:id])
    end
现在我的审查主任

 load_and_authorize_resource :message => "Unable to read this article."
  Here it works because in this controller 
  I use model Department
 case 2



  class ReviewsController < ApplicationController


  load_and_authorize_resource :message => "Unable to read this article."
  layout 'system'
  respond_to :html, :json
  add_breadcrumb "Home", :root_url
  add_breadcrumb "Reviews", :reviews_path
  def index
   @page_title = "Reviews List"
    @reviews = Evaluate.all
  end
    def show
       @page_title = "Review setting of selected Job title"
       @review = Evaluate.find(params[:id])
    end

控制器中的
load_和\u authorize_resource
方法用于将资源加载到实例变量中,并为该控制器中的每个操作自动授权资源。模型和控制器可以单独授权。rb只需使用
can:manage,evaluation
来授权该模型即可

如果您有一个用户模型,并且其中有一个管理布尔字段,那么您可以按如下方式执行授权:

if user.admin?  
  can :manage, Evaluate   
else
  can :read, Evaluate   
end  
或者,您可以使用authorize!方法。
回答您的问题:我们如何在具有评估(模型)的审查(控制器)中实施cancan


任何控制器检查和模型评估的工作示例都可能有帮助。这可能会有所帮助。请正确格式化您的代码。你可以用文本区域顶部的大括号来做这个。我只需要编辑我的评论控制器,你可以再看一次。。此方法阻止显示编辑链接,但您可以通过浏览器进行访问。Se我们需要在未授予访问权限的控制器中添加加载和授权资源:message=>“无法阅读本文”