Ruby on rails 更好的错误Gem不在本地浏览器中工作,没有可见的错误

Ruby on rails 更好的错误Gem不在本地浏览器中工作,没有可见的错误,ruby-on-rails,better-errors-gem,Ruby On Rails,Better Errors Gem,我将Better Errors gem添加到我的gemfile中,如下面我的gemfile中所示,并使用Better_Errors 1.1.0运行bundle和saw,并多次重新启动服务器。我看了railscast关于如何安装它的一集。我在过去从未遇到过安装任何其他gem的问题(我是编程新手)。我阅读了文档,并且已经检查了以下内容: Note: If you discover that Better Errors isn't working - particularly after upgrad

我将Better Errors gem添加到我的gemfile中,如下面我的gemfile中所示,并使用Better_Errors 1.1.0运行bundle和saw
,并多次重新启动服务器。我看了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'

在文件
app/config/environments/development.rb
中,代码中有这一行吗

# Show full error reports and disable caching.
config.consider_all_requests_local = true
瓦莱丽——你在虚拟机上吗?更好的错误有时不能很好地与虚拟机配合使用

我找到的解决方案是:

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

然后需要定义该环境变量。通过启动浏览器,点击旧的错误页面(只需在控制器中抛出一个
raise
),并在错误页面的“Show env dump”部分中找到“remote_ADDR”,即可找到远程IP。然后复制该IP并将其设置为ENV变量(在
.ENV
application.yml
文件中,或保存这些文件的任何地方)

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


然后重新启动服务器。有没有可能修复它?

使用Vagrant,将其添加到应用程序的
配置/environments/development.rb
(位于
配置
块中的任意位置):

然后重新启动服务器

(这只是萨沙解决方案的一个微小变化。)

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


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

BetterErrors::Middleware.allow\u ip!“受信任的IP”
其中“trusted_ip”是默认错误页中的“REMOTE_ADDR”
对我来说,它是10.0.2.2

我正在运行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版的任何人确认这一点。

旧问题,但以防这对任何人都有帮助。在本地主机上运行此命令时,我遇到了相同的问题:安装和配置了更好的错误,但没有收到任何有用的错误

通过运行
bundle update
可以轻松解决此问题


这更新了
,使用了更好的\u错误2.9.1(WAS2.4.0)
,现在我得到了更好的错误。

您是否尝试添加
gem“绑定调用方”
?医生说这不是必需的,但可能值得一试。@Arvoreniad,谢谢,我现在试过了,但没用。如果你还有其他想法,请告诉我!谢谢FWIW我在使用ngrok.io时遇到了同样的问题,下面的解决方案也解决了这个问题。我唯一能想到的就是检查安装了哪个版本的better_errors。我从我的gemfile-group中了解到:development do gem'debugger'gem'rack mini profiler'#性能测试gem'better_errors',“~>2.0.0”end。谢谢@user1854802,我将版本更新到了2.0.0,但仍然没有发现更好的错误!如果你以后还有其他想法,请告诉我!是的,我用的是流浪汉。我了解如何执行您提到的所有步骤,但最后一步除外(将IP设置为ENV变量)。我没有.env文件,所以我将把它放在application.yml文件中。我是否只是简单地在该文件中键入ENV['which the IP']呢?或者是ENV['TRUSTED_IP']=“无论IP是什么”谢谢!如果已经有变量,那么就按照已经存在的模式进行操作——这些都是ENV变量。因为它是一个YAML文件,所以将采用
KEY:value
格式。(比如说
design\u TOKEN:iamatoken12345
。那么,
TRUSTED\u IP:1234567
)。您可以通过在进行更改并查看
ENV[TRUSTED_IP]
的值后启动
rails控制台来测试它是否工作。缩进在YAML中很重要,所以请确保缩进是均匀的(在本例中,键根本没有缩进)。只是澄清一下——没有设置ENV变量的标准方法。有些人将它们放入一个
.env
文件中,该文件可以按照他们喜欢的格式进行格式化,然后将它们取出,并使用应用程序启动时运行的一些Ruby将它们分配给全局env常量。其他时候,它们存储在YAML中,并使用宝石等取出。但诀窍只是选择一种方式并遵循该模式。它们都是相对等效的。上面的输入错误不允许我编辑:它是
ENV['TRUSTED\u IP']
(这就是你键入它的方式),而不是没有上面引号的我的版本。这对我使用Cloud9 online IDE很有效。谢谢这解决了我在Centos上的流浪者盒子的问题。谢谢!
BetterErrors::Middleware.allow_ip! "0.0.0.0/0"
  # 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