list Rails控制器实例变量

jtz*_*ero 10 ruby metaprogramming ruby-on-rails-3

我试图在控制器中列出实例变量,但想出来了

irb>HomeController.instance_variable_names
=> ["@visible_actions", "@inheritable_attributes", "@controller_path", "@action_methods", "@_process_action_callbacks"]
Run Code Online (Sandbox Code Playgroud)

我试着采取行动

irb>HomeController.action("index").instance_variable_names
=> []
Run Code Online (Sandbox Code Playgroud)

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

Kri*_*ris 11

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

irb>instantiated_controller = HomeController.new
irb>instantiated_controller.index
irb>instantiated_controller.instance_variable_names
=> ["@_status", "@_headers", ...
Run Code Online (Sandbox Code Playgroud)