在所有视图中调试输出

我目前正在开发一个新的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 %>