CanCan授权有时对于管理员来说会失败,但是当我刷新时它可以工作

时间:2018-10-11 08:48:50

标签: ruby-on-rails ruby ruby-on-rails-5 cancan cancancan

我赋予管理员用户与普通用户不同的能力 当以admin用户登录时,有时即使得到了授权,我在某些操作上也没有得到授权的例外,但是当我刷新页面时,我又得到了授权。

有人知道如何解决此问题或是什么原因吗?

我的控制器和动作:

before_action :authorize_vendor

def delivery
  @order = Order.find_by(number: params[:id])
  authorize! vendor_action, @order
end

def vendor_action
  "vendor_#{action}".to_sym
end

def authorize_vendor
  record = if respond_to?(:model_class, true) && model_class
              model_class
            else
              controller_name.to_sym
            end        
  authorize! :vendor, record
  authorize! vendor_action, record
end

以下是能力等级代码

@vendor_ids = vendors.pluck(:id).first
can :vendor, Order, vendor_id: @vendor_ids
can :vendor_delivery, Order, vendor_id: @vendor_ids

我正在使用Rails 5.1.6

0 个答案:

没有答案