17

我将 Better Errors gem 添加到我的 gemfile 中,如下面的 gemfile 所示,然后运行 ​​bundle 并Using better_errors 1.1.0多次查看并重新启动我的服务器。我观看了有关如何安装它的 railscast 剧集。过去我从来没有遇到过安装任何其他 gem 的问题(我是编程新手)。我阅读了文档,并且已经对此进行了检查:

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.

任何关于如何让这个宝石工作的想法将不胜感激!这是我的宝石文件:

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'
4

6 回答 6

28

使用 Vagrant,将其添加到您的应用程序config/environments/development.rb(块内的任何位置configure):

BetterErrors::Middleware.allow_ip! "0.0.0.0/0"

然后重启你的服务器。

(这只是 Sasha 解决方案的一个细微变化。)

不要将此添加到您的生产环境中!

于 2015-04-16T15:17:01.150 回答
20

瓦莱丽——你在虚拟机上吗?更好的错误有时不能很好地与 VM 配合使用。

我找到的解决方案是这样的:

首先,在您的应用程序中config/environments/development.rb(在 中的任何位置configure do),添加:

BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']

然后你需要定义那个环境变量。通过启动浏览器找到您的远程 IP,点击旧的错误页面(只需raise在控制器或其他东西中输入),然后在错误页面的“显示环境转储”部分中找到“REMOTE_ADDR”。然后复制该 IP 并将其设置为 ENV 变量(在您的.envorapplication.yml文件中,或您保留它们的任何地方)。

注意 - 不要将其添加到生产中。充其量是不必要的(更好的错误应该只在开发中运行/包含 - 正如您在上面所确保的那样)。

然后重启你的服务器。有机会解决吗?

于 2014-10-02T21:10:19.860 回答
3

此外,为了更好,您需要将其添加到您的config/environments/development.rb

BetterErrors::Middleware.allow_ip! "TRUSTED_IP" 在默认错误页面中,“trusted_ip”是“REMOTE_ADDR”,对我来说是 10.0.2.2

于 2015-06-03T12:26:28.120 回答
2

在文件app/config/environments/development.rb中,您的代码中是否存在这一行?

# Show full error reports and disable caching.
config.consider_all_requests_local = true
于 2014-10-02T01:06:55.023 回答
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 的任何人确认它。

于 2016-03-28T02:21:22.377 回答
0

老问题,但万一这可以帮助任何人。我刚刚在我的本地主机上运行它时遇到了同样的问题:安装和配置了更好的错误,但我没有收到任何有用的错误。

通过运行很容易解决问题bundle update

这已更新Using better_errors 2.9.1 (was 2.4.0),现在我得到了更好的错误。

于 2021-03-24T00:28:45.307 回答