我将预览操作定义为
resources :organisations, shallow: true do
resources :orders do
get :preview, on: :new
end
end
在我的控制器中我有
load_and_authorize_resource :organisation
load_and_authorize_resource :order, through: :organisation, shallow: true
我的问题不是权限问题,但预览操作中的@order根本没有加载(它是零)。这是CanCan没有照顾的“on:new”的问题吗?还是有其他东西从我的注意力中逃脱?
答案 0 :(得分:1)
潜入CanCan源代码,我找到了一个选项“new”,允许执行以下操作:
load_and_authorize_resource :order, through: :organisation, shallow: true, new: :preview
添加此额外选项后,它会将预览操作“识别”为类似“new”和“create”的内容,并按预期填写@order变量...
虽然没有找到关于此选项的任何文档...
答案 1 :(得分:-2)
据我所知,Cancan不会加载你的@order(它只负责权限),你需要在你的控制器动作中。