2014-12-02 31 views
1

users_controller.rbcancan的load_and_authorize_resource中的自定义实例变量名称?

class UsersController < ApplicationController 
    def index 
    @objects = User.filter(params: params) 
    end 
end 

问题1>如果 'load_and_authorize_resource' 叫那么这将加载哪些实例变量?
Q.2>如果它加载@user或@users,那么如何使它加载在@object上?

我觉得我缺乏足够的知识了解cancan(我是一个rails新手),并使用它自从最近4天以来,希望这个问题是有道理的。

回答

1

的资源,如果实例变量已经设置没有加载这将是有益的。这可以很容易地通过覆盖某些行动的before_filter行为 - 从康康舞https://github.com/ryanb/cancan/blob/master/lib/cancan/controller_additions.rb线34和35,所以你可以在你的控制器里做这样的 -

before_filter :set_instance_variable 
load_and_authorize_resource 
private 
    def set_instance_variable 
    @object = "blah blah blah" 
    end 

load_and_authorize_resource应设置实例变量,即在被称为'before_filter:set_instance_variable'

+0

非常感谢您的解答。 – codemilan 2014-12-03 05:36:02

相关问题