我在我的gemfile中添加了Better Errors gem,如下面的gemfile中所示,并运行bundle并查看Using better_errors 1.1.0
并重启我的服务器几次。我观看了有关如何安装它的railscast剧集。我以前从未遇到过安装任何其他宝石的问题(我是编程新手)。我阅读了文档,我已经检查了这个:
Note: If you discover that Better Errors isn't working - particularly after upgrading from version 0.5.0 or less - be sure to set config.consider_all_requests_local = true in config/environments/development.rb.
如何让这个宝石工作的任何想法将非常感谢!这是我的gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.0.5'
group :development, :test do
gem 'rspec-rails'
gem 'capybara'
end
# Use sqlite3 as the database for Active Record
group :production do
gem 'pg'
gem 'rails_12factor'
end
group :development do
gem 'sqlite3'
gem 'better_errors'
end
gem 'bootstrap-sass', '~> 3.1.1'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.2'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '~> 4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 1.2'
group :doc do
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', require: false
end
# Use ActiveModel has_secure_password
gem 'bcrypt', '~> 3.1.7'
答案 0 :(得分:20)
使用Vagrant,将其添加到您应用的config/environments/development.rb
(configure
区域内的任何位置):
BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
然后重新启动服务器。
(这只是Sasha解决方案的一个小变化。)
请勿将其添加到您的生产环境中!
答案 1 :(得分:16)
Valerie - 你在虚拟机上吗?更好的错误有时可能无法与VM一起使用。
我发现的解决方案是:
首先,在您应用的config/environments/development.rb
(configure do
内的任何位置)中,添加:
BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']
然后您需要定义该环境变量。通过启动浏览器找到您的远程IP,点击旧的错误页面(只需在控制器或其他东西中抛出raise
),然后在错误页面的“显示环境转储”部分找到“REMOTE_ADDR”。然后复制该IP并将其设置为ENV变量(在.env
或application.yml
文件中,或者保存在那里的任何地方)。
注意 - 请勿将其添加到生产中。这是不必要的(更好的错误应该只在开发中运行/包含 - 正如你已经确定的那样)。
然后重新启动服务器。有没有机会修复它?
答案 2 :(得分:3)
除此之外,您还需要将其添加到config/environments/development.rb
:
BetterErrors::Middleware.allow_ip! "TRUSTED_IP"
在哪里" trusted_ip"是" REMOTE_ADDR"在默认错误页面中
对我而言,10.0.2.2
答案 3 :(得分:2)
在文件app/config/environments/development.rb
中,您是否在代码中显示此行?
# Show full error reports and disable caching.
config.consider_all_requests_local = true
答案 4 :(得分:0)
我正在运行vagrant,rails 5和ruby 2.3并且我将以下内容添加到我的config/environments/development.rb
并使其正常工作。
# Allow usage of better_errors on Vagrant
BetterErrors::Middleware.allow_ip! "10.0.2.2"
# Show full error reports and disable caching.
config.consider_all_requests_local = true
与上述答案相同,但只是想为运行rails 5 beta的任何人确认。
答案 5 :(得分:0)
老问题,但以防万一这可以帮助任何人。我刚刚在我的本地主机上运行时遇到了同样的问题:安装并配置了更好的错误,但我没有收到任何有用的错误。
问题很容易通过运行 bundle update
解决。
这更新了 Using better_errors 2.9.1 (was 2.4.0)
,现在我遇到了更好的错误。