【问题标题】:Rails better_errors gem server not startingRails better_errors gem 服务器未启动
【发布时间】:2015-10-16 08:44:47
【问题描述】:

由于我安装了 better_errors gem,我无法使用命令 rails 服务器启动我的服务器。我曾尝试在我的 development.rb 中添加行,例如 BetterErrors::Middleware.allow_ip! "0.0.0.0/0"BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP'],但它没有用。 这是我尝试启动服务器时的错误消息:

/home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/better_errors-2.1.1/lib/better_errors/exception_extension.rb:6:in `caller_locations': stack level too deep (SystemStackError)
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/better_errors-2.1.1/lib/better_errors/exception_extension.rb:6:in `set_backtrace'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/exception_extension.rb:15:in `call'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/exception_extension.rb:15:in `block in <class:Exception>'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/better_errors-2.1.1/lib/better_errors/exception_extension.rb:10:in `set_backtrace'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/exception_extension.rb:15:in `call'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/exception_extension.rb:15:in `block in <class:Exception>'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/better_errors-2.1.1/lib/better_errors/exception_extension.rb:10:in `set_backtrace'
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/gems/2.2.0/gems/web-console-2.0.0.beta3/lib/web_console/exception_extension.rb:15:in `call'
 ... 5885 levels...
from /home/jakub/.rbenv/versions/2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

还有我的 gemfile:

    source 'https://rubygems.org'

gem 'rails',                                '4.2.2'
gem 'bcrypt',                                       '3.1.7'
gem "paperclip",
git: "git://github.com/thoughtbot/paperclip.git"
gem 'faker',                                        '1.4.2'
gem 'will_paginate',                        '3.0.7'
gem 'bootstrap-will_paginate',  '0.0.10'
gem 'sass-rails',                           '5.0.2'
gem 'uglifier',                             '2.5.3'
gem 'coffee-rails',                         '4.1.0'
gem 'jquery-rails',                         '4.0.3'
gem 'turbolinks',                           '2.3.0'
gem 'jbuilder',                             '2.2.3'
gem 'sdoc',                                 '0.4.0', group: :doc

group :development, :test do
  gem 'better_errors', '~> 2.1.1'
  gem 'sqlite3',     '1.3.9'
  gem 'byebug',      '3.4.0'
  gem 'web-console', '2.0.0.beta3'
  gem 'spring',      '1.1.3'
end

group :test do
  gem 'minitest-reporters', '1.0.5'
  gem 'mini_backtrace',     '0.1.3'
  gem 'guard-minitest',     '2.3.1'
end

group :production do
  gem 'pg',             '0.17.1'
  gem 'rails_12factor', '0.0.2'
end

【问题讨论】:

    标签: ruby-on-rails server better-errors-gem


    【解决方案1】:

    这是自 2014 年以来在 github 上的 active issue。一种解决方法似乎是将 gem 'better_errors' 从您的 Gemfile 中移出 developmenttesting 组。

    您也可以开始手动重启spring,这可能会解决您的问题:

    cd /your/project
    spring stop
    ...
    spring start
    ...
    

    在您的 Gemfile 中:

    source 'https://rubygems.org'
    
    gem 'rails', '4.2.2'
    gem 'bcrypt', '3.1.7'
    gem "paperclip",
    git: "git://github.com/thoughtbot/paperclip.git"
    gem 'better_errors', '~> 2.1.1'
    
    group :development, :test do
      # ...
    end
    

    您可以尝试的其他方法:

    • 删除您的Gemfile.lock,保持您的 Gemfile 原样并重新运行捆绑安装。确保rails s 在执行此操作时未运行。
    • 从您的 Gemfile 中删除 better_errors 版本

    【讨论】:

    • 是的,我从 gemfile 中删除了 better_errors,现在服务器可以工作了,有没有可能让服务器使用这个 gem?
    • 是的,您可以简单地将它放在其他宝石下方,而不是使用宝石groups。如果您仍处于开发阶段,并且尚未在生产环境中提供您的应用,那么这样做是合理的。
    猜你喜欢
    • 2022-12-30
    • 2013-03-07
    • 1970-01-01
    • 1970-01-01
    • 2017-04-10
    • 2013-10-15
    • 1970-01-01
    • 2017-01-23
    • 1970-01-01
    相关资源
    最近更新 更多