ruby-on-rails - CanCan 授权有时会失败,但当我刷新时它可以工作
问题描述
我赋予管理员用户与普通用户不同的能力当使用管理员用户登录时,有时我在某些操作上得到未授权异常,即使它应该被授权,但是当我刷新页面时,我再次被授权。
有谁知道如何解决这个问题或导致它的原因?
我的控制器和操作:
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
解决方案
推荐阅读
- html - 在该 div 标签后面的 div 标签内显示图像
- c++ - CRichEditCtrl 50W 字体问题
- php - 为什么我动态设置时浏览器会连接href?
- reactjs - 如何从 React 钩子链接 useState() 方法
- javascript - swiper 滑块 - 作为一张幻灯片滑动,但包含 CSS
- average - 我计算移动平均线的 DAX 代码没有给出正确的结果
- kubernetes - 即使系统有可用空间,我也总是在 minikube 中出现“设备上没有剩余空间”问题,如何解决?
- android - 为什么我的 appbottombar 占用了我的整个布局高度
- oracle - 为什么sql一旦读超时,后面的查询总是很慢
- stm32 - AC6 eclipse - 使用 libopencm3 运行示例闪烁器的问题