Rails日志信息在开发日志中没有显示

4

我的开发日志似乎正常工作(它显示每个加载的资产等),但它不会显示我在代码中放置的任何消息。我已经:

   Rails.logger.debug "My debugging message"

在我的控制器方法中,虽然方法已被调用,但是消息未在开发日志中显示。这似乎很基础,但我找不到问题所在。有什么想法吗?
1个回答

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 Debug (gem install debug)。通过这种方式,它允许您在代码中设置断点,并检查执行时该点和时间的所有本地变量。您可能会发现在跟踪您不知道其位置的错误时使用此技术更好!因此,您可以像这样做。

class UserController < ApplicationController
  def new
    debugger
    @user = User.new(params[:user])
    .....
     ....
       ..
   end 

当您启动服务器时,请确保运行rails server debugger。更多信息请参阅:Ruby On Rails 3.2指南-Shell

希望这能澄清一些事情。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接