我正在开发一个新的Rails 3应用程序。控制器中定义的所有实例变量将在我的视图中自动调试。这在开发和生产模式中都会发生。
尽管这很有用,但我真的想摆脱它,因为它会部分地破坏HTML布局。
例如,我的控制器中有索引操作:
respond_with(@articles = Article.published.order("created_at DESC").page(params[:page]).per(5))
在视图中,您将自动看到与<%= debug @articles%>的输出类似的内容,尽管我从不在视图中调用inspect或debug。
展示整个问题的示例图片:
http://www.diigo.com/item/image/16wox/padm?size=o
My Gemfile如下所示:https://gist.github.com/1080104
答案 0 :(得分:1)
您应该在应用程序帮助程序模块中创建一个方法:
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 %>