我的开发日志似乎工作正常(它显示了已加载的每个资产等)但它不会显示我放入代码中的任何消息。我有:
Rails.logger.debug "My debugging message"
在我的控制器的方法中。调用该方法,但消息未显示在开发日志中。这看起来很基本,我看不出我哪里出错了。有什么想法吗?
答案 0 :(得分:1)
我相信我猜你的控制器可能会有以下内容:
class UserController < ApplicationController
# ...
def create
@user = User.new(params[:user])
logger.debug "New user: #{@user.attributes.inspect}"
logger.debug "User should be valid: #{@user.valid?}"
if @user.save
flash[:notice] = 'User was successfully created.'
logger.debug "The User was saved and now the user is going to be redirected..."
redirect_to(@user)
else
render action: "new"
end
end
# ...
end
您可能想要添加到config/environment/development.rb
中的另一项技术是:
# See everything in the log (default is :info)
config.log_level = :debug
正如它在评论中所述,它将在调试级别记录所有内容。
除此之外,有些人可能会同意某些人可能不同意我遇到过的事情并且我正在学习使用ruby调试(gem install debug)
。这样,它允许你在代码中放置一个断点并检查所有本地在那个点和执行时间的变量。你可能会发现使用这种技术来跟踪你不在的地方的bug会更好!所以你可以做这样的事情。
class UserController < ApplicationController
def new
debugger
@user = User.new(params[:user])
.....
....
..
end
然后,当您启动服务器时,请确保再次运行rails server debugger
:Guide Ruby On Rails 3.2 - The Shell
希望这能澄清一些事情。