27

Rails 3で非推奨の警告を消す方法を教えてもらえますか?

誤検知が発生する状況がいくつかあります。つまり、dynamic_formプラグインからのhamlおよびf.error_messagesの-forループを使用します。

ありがとう

4

3 に答える 3

58

すべての非推奨の警告を消音するには、次のようにすることができます。

ActiveSupport::Deprecation.silenced = true

これは、イニシャライザーまたは特定の環境の環境ファイルに配置できます(たとえば、本番環境でのみ無音にするため)。

または、コードの特定のセクションについては、ブロックで囲みます。

ActiveSupport::Deprecation.silence do
  # no warnings for any use of deprecated methods here
end

これは、Rails3と4の両方で機能します。

于 2010-04-22T13:12:56.703 に答える
12

受け入れられた答えは、Rails3.2.12では機能しませんでした。それをenvironments/production.rbまたは初期化子のいずれかに配置しても警告が出力されました。アプリケーションを初期化する前に、config/environment.rbファイルに配置する必要がありました。

# Load the rails application
require File.expand_path('../application', __FILE__)

::ActiveSupport::Deprecation.silenced = true if Rails.env.production?

# Initialize the rails application
Notices::Application.initialize!
于 2013-02-18T13:44:26.713 に答える
7

Ryan Daigleはこれに関する記事を書きました。この記事では、非推奨の警告を傍受し、ログファイルに送信するなど、他の方法を実行する方法も示しました。

ActiveSupport::Deprecation.behavior = Proc.new { |msg, stack| MyLogger.warn(msg) }

http://ryandaigle.com/articles/2006/12/4/how-to-turn-deprecation-warnings-off-in-rails

于 2011-06-17T13:23:40.263 に答える