在所有视图中调试输出

时间:2011-07-13 10:27:52

标签: ruby-on-rails debugging

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

1 个答案:

答案 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 %>