Ruby on rails 在不匹配的模型和控制器名称中可以进行授权
我正在使用cancan,但有点小问题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
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=>“无法阅读本文”