CanCan Auth issue



大家下午好,

我正试图解决我的用户身份验证问题,这让我自己头疼不已。

我在User中定义了一个:role_type,我的用户有两个角色,Employer或Developer,现在我的用户是当前的开发人员,应该能够看到jobs#索引,但它不能,我得到了未经授权的默认取消消息:

class JobsController < ApplicationController
  load_and_authorize_resource
  before_filter :authenticate_user!
  before_action :set_job, only: [:show, :edit, :update, :destroy]

这是Ability.rb

class Ability
  include CanCan::Ability
def initialize(user)
    user ||= User.new # guest user (not logged in)
    can :create, :delete, :update, Job if user.role_type == "Employer"
    can :read, Job if user.role_type == "Developer"
end
end

谢谢你的帮助。

正如评论中所写:确保你没有像"Employer"而不是"Employer"这样的拼写错误:-)

我假设user.role_type == 'Employer'

查看您的代码,雇主似乎错过了:read操作。如果Employer可以管理所有作业(基本的crud操作),你可能想考虑给他:manage能力

示例:

can :manage, Job if user.role_type == "Employer"
can :read, Job if user.role_type == "Developer"

:manage功能允许用户访问JobsController中的每个操作。有关管理能力的说明,请参阅以下文档:https://github.com/ryanb/cancan/wiki/defining-abilities#the-can方法

否则,您需要将:read操作添加到Employer,因为它们不是Developer,也不会获得:read操作

最新更新