users_controller.rb
class UsersController < ApplicationController
def index
@objects = User.filter(params: params)
end
end
Q.1&gt;如果&#39; load_and_authorize_resource&#39;然后调用它将加载什么实例变量? Q.2&gt;如果它加载@user或@users然后如何加载@object?
我认为我缺乏足够的知识了解cancan(我是一个铁杆新手),并且在过去的4天里使用它,希望这个问题有道理。
答案 0 :(得分:1)
Q1。对于UsersController,它将是@user
Q2。如果您有正确的路线,可以使用
load_and_authorize_resource :custom_model_name
此外,它对您有用[{3}}
答案 1 :(得分:1)
如果已设置实例变量,则不会加载资源。这样可以通过on_filter轻松覆盖某些操作的行为 - 来自cancan 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'之后