1. ホーム
  2. ruby-on-rails

[解決済み] Railsで例外を発生させて、他のRailsの例外と同じように動作させるにはどうしたらいいですか?

2023-02-04 15:43:05

質問

例外を発生させて、通常のRailsの例外と同じことをさせたいのですが、どうすればいいですか?特に、開発モードでは例外とスタックトレースを表示し、本番モードでは "We're sorry, but something went wrong" のページを表示します。

私は以下を試しました。

raise "safety_care group missing!" if group.nil?

しかし、これは単に "ERROR signing up, group missing!" をdevelopment.logファイルに書き込むだけです。

どのように解決するのですか?

特別なことをする必要はなく、そのまま使えるはずです。

このコントローラーで新しいrailsアプリを作った場合。

class FooController < ApplicationController
  def index
    raise "error"
  end
end

に移動し http://127.0.0.1:3000/foo/

スタックトレースで例外が表示されています。

コンソールログにスタックトレース全体が表示されないことがありますが、これはRails(2.3以降)が がフレームワーク自体から来るスタックトレースの行をフィルタリングするためです。

参照 config/initializers/backtrace_silencers.rb をRailsプロジェクトの