4

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

   Rails.logger.debug "My debugging message"

在我的控制器的方法中。该方法已调用,但消息未显示在开发日志中。这似乎很基本,我看不出哪里出错了。有任何想法吗?

4

1 回答 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进一步阅读:Guide Ruby On Rails 3.2 - The Shell

希望这可以澄清一些事情。

于 2013-06-26T00:46:04.937 回答