В моем приложении rails 3 я хотел узнать / подсчитать переменные экземпляра, созданные в действии контроллера, в представлении вспомогательных методов или в ruby-debug.
Я попытался поместить <% debugger %>
в представление, перезагрузить страницу и в консоли:
(rdb:25) p controller.instance_variables
[:@action_has_layout, :@view_context_class, :@_headers, :@_status, :@_response, :@_request,
:@_env, :@lookup_context, :@_action_name, :@_response_body, :@tenant, :@_config,
:@current_user, :@current_account, :@_params, :@station, :@form, :@line, :@enabled_steps,
:@stations, :@raw, :@form_to_render, :@locals_hash]
(rdb:25)
Я почти уверен, что в нем перечислены не все переменные экземпляра, определенные в моих вспомогательных методах. И что это за :@_...
своего рода имя переменной? Как я могу получить доступ к этим переменным?
(rdb:25) p controller.locals_hash
NoMethodError Exception: undefined method `locals_hash' for #<FormsController:0x00000108533cd0>
(rdb:25) p locals_hash
NameError Exception: undefined local variable or method `locals_hash' for #<#<Class:0x00000100c5ef08>:0x000001081fd0e8>
(rdb:25)