17

以下の gemfile に示すように、Better Errors gem を 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"

次に、サーバーを再起動します。

(これは、サーシャのソリューションのほんのわずかなバリエーションです。)

これを本番環境に追加しないでください。

于 2015-04-16T15:17:01.150 に答える
20

Valerie -- 仮想マシンを使用していますか? VM では、より良いエラーがうまく機能しないことがあります。

私が見つけた解決策はこれです:

まず、アプリconfig/environments/development.rb( 内の任意の場所configure do) に次を追加します。

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

次に、その環境変数を定義する必要があります。ブラウザを起動し、古いエラー ページにアクセスして (raiseコントローラーなどに a を投げるだけで)、エラー ページの "Show env dump" セクションで "REMOTE_ADDR" を見つけて、リモート IP を見つけます。次に、その IP をコピーし、ENV 変数として設定します (.envまたはapplication.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 に答える
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 ベータ版を実行しているすべての人に確認したかっただけです。

于 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 に答える