Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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 列出Rails控制器实例变量_Ruby_Ruby On Rails 3_Metaprogramming - Fatal编程技术网

Ruby 列出Rails控制器实例变量

Ruby 列出Rails控制器实例变量,ruby,ruby-on-rails-3,metaprogramming,Ruby,Ruby On Rails 3,Metaprogramming,我试图在一个控制器中列出实例变量,但是我想到了 irb>HomeController.instance_variable_names => ["@visible_actions", "@inheritable_attributes", "@controller_path", "@action_methods", "@_process_action_callbacks"] 我试过了 irb>HomeController.action("index").instance_vari

我试图在一个控制器中列出实例变量,但是我想到了

irb>HomeController.instance_variable_names
=> ["@visible_actions", "@inheritable_attributes", "@controller_path", "@action_methods", "@_process_action_callbacks"]
我试过了

irb>HomeController.action("index").instance_variable_names
=> []

那么控制器实例变量属于什么呢?

实例变量属于实例化的控制器对象,并且仅在执行操作方法时创建。试试这个:

irb>instantiated_controller = HomeController.new
irb>instantiated_controller.index
irb>instantiated_controller.instance_variable_names
=> ["@_status", "@_headers", ...

您还可以直接从控制器代码调用
self.instance\u variable\u name
,然后在日志中查看它们

class ProfilesController < ApplicationController
  ...
  def update
    logger.info("List of instance vars: #{self.instance_variable_names}")
    ...
  end
end
class ProfilesController