这个标题几乎解释了一切。 我想使用像
这样的东西p something
能够在网站上看到输出,只是为了调试。
答案 0 :(得分:6)
我怀疑你是来自PHP,因为这是一个非常PHP的东西。标准输出不会发送到Rails中的浏览器,PHP开发人员认为这是理所当然的。
如果你想在浏览器中看到某些东西,你需要渲染它。
从视图中,您可以使用debug
帮助程序“vardump”一个值:
<%= debug something %>
通过控制器,您可以使用render :inline => p(something)
或render :inline => something.inspect
快速查看变量的值。确保您事后return
或以其他方式阻止自己进行第二次render
来电。
您应该使用tail
日志文件,并使用Rails logger。
答案 1 :(得分:3)
我建议捎带Rails flash 地图。在控制器中,使用以下内容:
flash[:log] = "<li>Log: #{log_info}</li>"
然后在您的视图中(可能在您的布局中)使用:
<% if !flash[:log].blank? && RAILS_ENV != 'production' %>
<ul class="logs">
<%= flash[:log] %>
</ul>
<% end %>
应该把它放在你的页面上!
您还可以在 ApplicationController
中添加以下内容 def log(msg)
flash[:log] ||= ""
flash[:log] += "<li>#{Time.new.to_s} - #{msg}</li>"
end
然后只需从任何控制器调用:
log("Hi stackoverflow.")
或者从任何观点来看:
@controller.log("Hi there, you!")