i was trying to list the instance variables inside a controller but came up with
irb>HomeController.instance_variable_names
=> ["@visible_actions", "@inheritable_attributes", "@controller_path", "@action_methods", "@_process_action_callbacks"]
and I tried it on the action
irb>HomeController.action("index").instance_variable_names
=> []
so what do controller Instance variables belong to?
The instance variables belong to the instantiated controller object, and are only created when the action method has executed. Try this:
irb>instantiated_controller = HomeController.new
irb>instantiated_controller.index
irb>instantiated_controller.instance_variable_names
=> ["@_status", "@_headers", ...
You can also call self.instance_variable_names
directly from the controller code and then see them in logs.
class ProfilesController < ApplicationController
...
def update
logger.info("List of instance vars: #{self.instance_variable_names}")
...
end
end
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With