在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 serverterminal中使用键盘命令 k首先清除整个屏幕缓冲区,然后使用浏览器获取网页,现在使用Command fsearch你打印出的string,它也能很好地工作。 实际上,如果使用命令 k首先清除整个屏幕缓冲区,那么打印输出应该始终适合屏幕缓冲区。