load_and_authorize_resource包含集合和自定义模型

时间:2013-04-01 20:02:11

标签: ruby-on-rails ruby ruby-on-rails-3 controller cancan

我的控制器有很多自定义操作:

class FooController < ApplicationController
  def fizz

  end


  def buzz

  end

  ...
end

我想在这两种方法中加载和授权Bar集合(不重复@bars = Bar.all)。

类似的东西:

load_and_authorize_resource :bar, :collection, :only => [:fizz, :buzz, ...]

但这根本不起作用,@bars变量在所有操作中都是nil。请帮助我了解出了什么问题以及如何使其发挥作用。谢谢!

2 个答案:

答案 0 :(得分:2)

以下对我有用(source):

load_and_authorize_resource :bar, :parent => false

答案 1 :(得分:1)

您可以在控制器中使用before_filter:

before_filter :load_and_authorize_resource, :only => [:fizz, :buzz]

private

def load_and_authorize_resource
   @bars = Bar.all
end