Улучшенные ошибки Gem не работает в локальном браузере, ошибок нет

Я добавил gemfile к лучшему, как показано в моем gemfile ниже, и выполнил пакет и увидел Using better_errors 1.1.0 и несколько раз перезапустил мой сервер. Я смотрел эпизод railscast о том, как его установить. У Ive никогда не было проблемы с установкой любого другого драгоценного камня в прошлом (я новичок в программировании). Я прочитал документацию, и я уже проверил это:

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'

Ответ 1

Валери - ты на виртуальной машине? Более эффективные ошибки иногда могут не работать с виртуальными машинами.

Решение, которое я нашел, следующее:

Во-первых, в приложении config/environments/development.rb (где-нибудь внутри configure do) добавьте:

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

Затем вам нужно определить эту переменную среды. Найдите свой удаленный IP-адрес, включив браузер, нажав на старую страницу с ошибкой (просто введите raise в контроллер или что-то еще) и найдите "REMOTE_ADDR" на странице с сообщением "Show env dump". Затем скопируйте этот IP-адрес и установите его как переменную ENV (в вашем файле .env или application.yml или где бы вы их не сохранили).

Примечание. НЕ добавляйте это к производству. В лучшем случае это не нужно (лучше использовать ошибки/включить в разработку - как вы убедились выше).

Затем перезагрузите сервер. Любой шанс, который его исправляет?

Ответ 2

С помощью Vagrant добавьте это в свое приложение config/environments/development.rb (где-нибудь внутри блока configure):

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

Затем перезагрузите сервер.

(Это лишь небольшая вариация решения Саши.)

НЕ добавляйте это в свою производственную среду!

Ответ 3

Кроме того, для всего лучшего вам нужно добавить это в свой config/environments/development.rb:

BetterErrors::Middleware.allow_ip! "TRUSTED_IP" где "trusted_ip" - "REMOTE_ADDR" на странице ошибок по умолчанию для меня это 10.0.2.2

Ответ 4

В файле app/config/environment/development.rb у вас есть эта строка в коде?

# Show full error reports and disable caching.
config.consider_all_requests_local       = true

Ответ 5

Я запускаю бродягу, рельсы 5 и рубин 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

Те же ответы, что и выше, но просто хотели подтвердить его для всех, кто работает с бета-версией 5.