【问题标题】:rails debugger error轨道调试器错误
【发布时间】:2012-08-28 06:37:19
【问题描述】:

试图让 Rails 调试器工作。我做了以下:

gem 安装调试器

在 Gemfile 中添加

gem "调试器", "~> 1.2.0"

捆绑安装 - 没有错误

现在我将调试器放在我的一个控制器中

def show
    require 'debugger'; debugger
    @user = User.find(params[:id])

    respond_to do |format|
       format.html # show.html.erb
       format.json { render json: @user }
    end
end

当我指向我的浏览器时,我在浏览器上收到以下错误

LoadError in UsersController#show

cannot load such file -- debugger

我正在使用 ruby​​ 1.9.3p194(2012-04-20 修订版 35410)[x86_64-linux] 和带有 Phusion 乘客的 Rails 3.2.6

知道有什么问题吗?

【问题讨论】:

  • 去掉 require 语句,bundler 和 gemfile 处理这个
  • 想知道这个版本是否需要rails s --debugger

标签: ruby-on-rails ruby debugging ruby-on-rails-3.2 ruby-debug


【解决方案1】:

删除 require 语句并使用调试器选项启动 Rails 服务器

rails 服务器 --debugger

【讨论】:

  • 你复制/粘贴了我的 cmets 吗?
  • 我用 Phusion 乘客运行 Nginx,为什么我需要启动 rail server?
【解决方案2】:

不确定您想如何使用调试器 gem,但它非常适合在活动代码中创建停止点。在 Rails 3 中,您只需要在您的 routes.rb 中:

gem 'debugger'

它在生产中没有任何影响,要让它在任何时候停止您的代码,只需输入“调试器”,您的服务器控制台就会让您访问代码中的那个点。此时,要检查变量的状态,您需要访问 IRB,因此只需输入“irb”。在“显示”操作中,您可以检查参数的值以及是否会填充 @user。

def show
  debugger
  @user = User.find(params[:id])
  ...

【讨论】:

  • 你说我需要把这个“gem 'debugger'”放在routes.rb 中吗?还是宝石文件?我正在使用 Phusion 乘客运行 Nginx,所以我需要启动铁路服务器吗?
  • 正如我的评论所说,将 gem 线放在您的路线中。是的,您可能应该在控制台中执行“捆绑安装”,然后重新启动。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-21
  • 1970-01-01
  • 2014-11-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多