Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 cancan';中的自定义实例变量名;s加载和授权资源?_Ruby On Rails 4_Ruby 2.1 - Fatal编程技术网

Ruby on rails 4 cancan';中的自定义实例变量名;s加载和授权资源?

Ruby on rails 4 cancan';中的自定义实例变量名;s加载和授权资源?,ruby-on-rails-4,ruby-2.1,Ruby On Rails 4,Ruby 2.1,用户\u controller.rb class UsersController < ApplicationController def index @objects = User.filter(params: params) end end class UsersController如果调用了“加载和授权资源”,那么它将加载哪个实例变量? Q.2>如果加载@user或@users,那么如何将其加载到@object上 我想我对cancan(我是rails新手)缺乏

用户\u controller.rb

class UsersController < ApplicationController  
  def index
    @objects = User.filter(params: params)
  end
end  
class UsersController
Q.1>如果调用了“加载和授权资源”,那么它将加载哪个实例变量?
Q.2>如果加载@user或@users,那么如何将其加载到@object上


我想我对cancan(我是rails新手)缺乏足够的了解,从过去4天开始使用它,希望这个问题有意义。

Q1。对于UsersController,它将是@user

问题2。如果你有正确的路线,你可以使用

load_and_authorize_resource :custom_model_name

此外,如果已设置实例变量,则资源未加载,这对您也很有用。这使得在某些操作上通过before_过滤器覆盖行为变得很容易-从cancan第34行和第35行开始,因此您可以在控制器中这样做--


在设置实例变量之后,即在“before\u filter:set\u instance\u variable”之后,应该调用load\u和\u authorize\u资源。

非常感谢您的解决方案。谢谢Alex,我了解了这个问题。
before_filter :set_instance_variable  
load_and_authorize_resource  
private  
  def set_instance_variable
    @object = "blah blah blah"  
  end