在Ruby on Rails上,我们如何在控制器内打印debugging信息?
在PHP,CGI或RoR的View中,我们可以轻松打印debugging信息。 在控制器中,怎么样, print "hello world"
(到网页输出),然后返回继续查看,还是停在那里?
在控制器中,您可以:
render :text => @some_object.inspect
但是你的观点不会被渲染。
你也可以:
Rails.logger.debug("My object: #{@some_object.inspect}")
并在log / development.log上运行尾部以查看输出。
有鉴于此,推荐的方法是:
<%= debug(@some_object) %>
不知道print
,但puts
从来没有失败我。 hello world
你的hello world
将在控制台和日志和正常stream量将继续。
我理解你了吗?
您可以在视图中debugging: <%= debug @post %>
。 更多信息: http : //guides.rubyonrails.org/debugging_rails_applications.html
你可以使用中止检查
abort params[:whatevs].inspect
要么
abort @my_variable.inspect
为JSON格式
render json: JSON.pretty_generate(JSON.parse(@my_variable.to_json))
其实Nikita的build议不错 但通常很难查看terminal中的数据,因为屏幕缓冲区大小可能受到限制,并且以前的页面渲染数据已满。
但是,在Mac上说,只要确保屏幕缓冲区足够大,并且还可以在rails server
terminal中使用键盘命令 k首先清除整个屏幕缓冲区,然后使用浏览器获取网页,现在使用Command fsearch你打印出的string,它也能很好地工作。 实际上,如果使用命令 k首先清除整个屏幕缓冲区,那么打印输出应该始终适合屏幕缓冲区。