2015-10-16 56 views
1

因为我更喜欢better_errors宝石我无法使用命令栏服务器启动我的服务器。我曾尝试添加行到我的development.rb像BetterErrors::Middleware.allow_ip! "0.0.0.0/0"BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP'],但它没有奏效。 这是我的错误讯息,当我尝试启动服务器:Rails better_errors宝石服务器不启动

/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 

回答

1

这是在github的active issue自2014年一个解决办法似乎是移动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不会在运行时运行。
  • 删除better_errors版本从您的Gemfile
+0

是的,我删除了我的Gemfile better_errors现在服务器工作,是否有可能使服务器工作,这种宝石? –

+0

是的,你可以简单地把它放在其他宝石的下面,而不是使用gem'groups'。如果您仍在开发中,并且不在生产中为您的应用程序提供服务,那么这是一件合理的事情。 –