在所有视图中调试输出
我目前正在开发一个新的Rails 3应用程序。 控制器中定义的所有实例变量将在我的视图中自动调试。 这在开发和生产模式中都会发生。
尽管这很有用,但我真的很想摆脱它,因为它会部分地破坏HTML布局。
例如,我在我的控制器中有索引操作:
respond_with(@articles = Article.published.order("created_at DESC").page(params[:page]).per(5))
在视图中,您将自动看到类似于的输出的内容,尽管我从不在视图中调用inspect或debug。
用于演示整个问题的示例图片:
http://www.diigo.com/item/image/16wox/padm?size=o
我的Gemfile看起来像这样: https ://gist.github.com/1080104
您应该在应用程序帮助程序模块中创建一个方法:
def debug_all &block excluded_vars = ["@lookup_context", "@view_context_class", "@action_has_layout"] controller.instance_variables.each do |var| unless var.at(1)== "_" or excluded_vars.include?(var) yield var end end end
在您的应用程序布局中:
<% debug_all do |var| %> <%= "variable name: #{var} " %> <%= eval(var).inspect %> <% end %>