4

私は cloud9 IDE で多くのプロジェクトに取り組んでいますが、より適切なエラー gem が正しく機能しないことに本当にイライラしています。初期化する必要はありません。それは箱から出してすぐに動作するはずです。ただし、通常の醜い赤いエラーページしか表示されません。それが私のgemfileに含まれていることを指定する必要があり、bundle installすでに持っています。

エラーを正しく動作させるにはどうすればよいですか? 不足しているインストール手順はありますか?

4

5 に答える 5

2

これを cloud9.io でテストしたところ、これが cloud9.io で機能する最も簡単な方法です。

次の行を config/environments/development.rb に追加します。

BetterErrors::Middleware.allow_ip! 'xxx.xxx.xxx.0/24'

ここで、xxx.xxx.xxx は、 cloud9.io への接続に使用しているローカルマシンの IP アドレスの最初の 3 つのセクションです。

于 2016-09-01T17:55:29.210 に答える
2

より良いエラーの問題と c0 ドキュメントに良い答えがあります。

問題: https://github.com/charliesome/better_errors/issues/318

c9 ヘルプ https://community.c9.io/t/white-listing-remote-addr-for-better-errors-gem/4976/4

Rack::Requestオブジェクトを使用して IP を取得します。次のコードをビューに配置できます。

   if Rails.env.development?
     request = Rack::Request.new(env)
     puts "@@@@@@ Request IP_ADDRESS = #{request.ip}"
   end

に到達する IP の最後の象限を変更します0/24。例えば。

BetterErrors::Middleware.allow_ip! '76.168.69.0/24'     <--note: change the last quad to 0/24 and of course your ip address will be different than 76.168.69.xx
于 2016-09-02T19:24:00.387 に答える
2

うん!!わかった!自動的!これが私の解決策です:

1- @Grokcodile の説明と同様: プロジェクトの config/environments/development.rb ファイルを編集し、次のコード行を Rails.application.configure ブロックに追加します。

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

config.web_console.whitelisted_ips = ENV['TRUSTED_IP']

2- Cloud9 で ~/.bashrc... を編集します。

vi ~/.bashrc

次の行を追加します (Enter、alt+a):

export TRUSTED_IP='0.0.0.0/0.0.0.0'

保存します (esc, :wq)

3-rails s -b $IP -p $PORTいつものように走る...

4-より良いエラーをお楽しみください!!

仮想マシン (vagrant) でこのプロジェクトにも取り組んでいる場合:

1- VM (vagrant) で ~/.bash_profile (私の場合) を編集し、以下を追加します。

export TRUSTED_IP=x.x.x.x
export PORT=3000
export IP=0.0.0.0

xxxx は、ENV の REMOTE_ADDR と等しくなければなりません。(これは cloud9 のような問題ではありません。これは、私の VM では IP が毎回変更されるわけではないためです。私にとっては常に 10.0.2.2 です)。

これで、gem foreman を使用できるようになりforeman startました: Procfile の両方の場所で:

web: rails s -b $IP -p $PORT

グローバル環境変数が両方に設定されているため、これは機能します。

私も RoR を学び始めたばかりなので、これが正しいことであり、今後これ以上問題が発生しないことを願っています。

于 2017-01-13T11:14:41.020 に答える
0

Cloud9 はすべて Web ベースであるため、localhost からアクセスしないため、デフォルトではより良いエラーは機能しません。彼らの README ( https://github.com/charliesome/better_errors )のセキュリティ セクションを見ると、config/environments/development.rb に以下を追加できます。

BetterErrors::Middleware.allow_ip! <ipaddress>

そのため、IP のエラー ページが表示されます。古いエラーページの「Show env dump」をクリックして「REMOTE_ADDR」を見ると、見かけの IP を見つけることができます。

于 2014-11-25T06:53:40.260 に答える