Может ли кто-нибудь сказать мне, как заставить замолчать воровство в Rails 3?
У меня есть несколько ситуаций, когда он бросает ложные срабатывания. А именно использование - для циклов в haml и f.error_messages из плагина dynamic_form.
Спасибо
Ответ 1
Чтобы отключить все предупреждения, которые вы можете сделать:
ActiveSupport::Deprecation.silenced = true
Это может быть помещено в инициализатор или в файл окружения для конкретной среды (например, для молчания только в производстве).
Или для определенного раздела кода заключите его в блок:
ActiveSupport::Deprecation.silence do
# no warnings for any use of deprecated methods here
end
Это работает как для Rails 3, так и для 4.
Ответ 2
Принятый ответ не работал у меня с Rails 3.2.12. Размещение в среде /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!
Ответ 3
Райан Дайгл написал статью об этом, в которой он также показал, как вы можете перехватить предупреждение об устаревании и сделать с ним что-то еще, например отправить его в файл журнала: