更好的错误Gem无法在本地浏览器中工作,没有错误可见

Val*_*ler 16 ruby-on-rails better-errors-gem

我将更好的错误gem添加到我的gemfile中,如下面的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.
Run Code Online (Sandbox Code Playgroud)

关于如何让这个宝石工作的任何想法将非常感谢!这是我的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'
Run Code Online (Sandbox Code Playgroud)

Mat*_*ins 22

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

BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
Run Code Online (Sandbox Code Playgroud)

然后重启服务器.

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

请勿将其添加到您的生产环境中!

  • 这对我使用Cloud9在线IDE很有用.谢谢! (2认同)

Sas*_*sha 17

Valerie - 你在虚拟机上吗?更好的错误有时可能无法与VM一起使用.

我发现的解决方案是这样的:

首先,在你的应用程序中config/environments/development.rb(在里面的任何地方configure do),添加:

BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']
Run Code Online (Sandbox Code Playgroud)

然后,您需要定义该环境变量.通过启动浏览器找到您的远程IP,点击旧的错误页面(只需raise在控制器或其他东西中抛出),然后在错误页面的"显示环境转储"部分找到"REMOTE_ADDR".然后复制该IP并将其设置为ENV变量(在您.envapplication.yml文件中,或者保存它们的任何位置).

注意 - 请勿将其添加到生产中.这是不必要的(更好的错误应该只在开发中运行/包含 - 正如你已经确定的那样).

然后重启服务器.有机会修复它吗?