CanCan和预览操作 - 未加载对象

时间:2014-01-30 07:42:53

标签: ruby-on-rails ruby-on-rails-3.2 cancan

我将预览操作定义为

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”的问题吗?还是有其他东西从我的注意力中逃脱?

2 个答案:

答案 0 :(得分:1)

潜入CanCan源代码,我找到了一个选项“new”,允许执行以下操作:

load_and_authorize_resource :order, through: :organisation, shallow: true, new: :preview

添加此额外选项后,它会将预览操作“识别”为类似“new”和“create”的内容,并按预期填写@order变量...

虽然没有找到关于此选项的任何文档...

答案 1 :(得分:-2)

据我所知,Cancan不会加载你的@order(它只负责权限),你需要在你的控制器动作中。