passenger をつかって rails アプリを稼働させている場合、
http://localhost:3000/users?x=%
にアクセするすると
** ArgumentError in UsersController#index**
invalid %-encoding (%)
のエラー画面が表示されてしまいます。
ここで 自分で設定したエラー画面を出すようにしたいのですが、それができずに困っています。
![イメージ説明]WIDTH:600
このエラーが発生した際に自分で設定したエラー画面を出すようにする方法を教えてください。
https://github.com/katoy/sample-errors に試行中のものを置きました。
これは以下のような作業をしたものです。
-
$ rails new sample -T
-
Gemfile に 追加。
gem 'passenger' -
$ rails g scaffold user nmae:string tel:string email:string
で user 処理を生成。 -
config/routes.rb に追加。
get '*not_found' => 'application#render_404' -
app/controller/applicatin_controller にエラーハンドリングを少し追加。
-
app/views/errors/ に エラー表示用のファイルを追加。
-
config/envirionments/development.rb に追加。
config.action_controller.action_on_unpermitted_parameters = :raise -
$ passenger start で passenger をつかって rails アプリを稼働させる。
備考:
- $ rails s で webrik で稼働させた時は、passenger での稼働時とは異なるエラーになります。
可能なら、この場合も自分で設定したエラー画面を出したいです。
(passenger, webrik での稼働に依存しないエラー制御ができるのが好ましい)
- 以下の URL を参照して、いくつか試行錯誤してみていますが 上手くできていません。(手法が不適なのか、手法の適用方法時の不備なのか...)
http://dev.mensfeld.pl/2014/03/rack-argument-error-invalid-byte-sequence-in-utf-8/
http://blog.ericrafaloff.com/how-to-break-most-rails-apps.html
http://qiita.com/jnchito/items/caa12cbac013ed6a2f34
https://gist.github.com/joost/ca4eda8f31655cf6095a
http://stackoverflow.com/questions/24648206/ruby-on-rails-invalid-byte-sequence-in-utf-8-due-to-bot
https://github.com/rails/rails/issues/11662

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。