Авторизация CanCan иногда не выполняется для администратора, но когда я обновляю ее, она работает - PullRequest
0 голосов
/ 11 октября 2018

Я даю пользователю-администратору другие возможности, чем обычным пользователям. При входе в систему с правами администратора иногда я получаю несанкционированное исключение для некоторых действий, даже если оно должно быть авторизовано, но затем, когда я обновляю страницу, я снова авторизируюсь.

Кто-нибудь знает, как решить эту проблему или что ее вызывает?

мой контроллер и действие:

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

Я использую рельсы 5.1.6

...