【发布时间】:2011-08-25 00:46:15
【问题描述】:
在this question 中解释了如何做一个简单的警告(但不记录跟踪所以不是那么有用)并且有很多方法可以做到这一点,但我没有找到指南。
如何使用 ActiveSupport::Deprecation 将 old_method 标记为已弃用并调用其他 new_method。
【问题讨论】:
标签: ruby-on-rails ruby deprecated activesupport
在this question 中解释了如何做一个简单的警告(但不记录跟踪所以不是那么有用)并且有很多方法可以做到这一点,但我没有找到指南。
如何使用 ActiveSupport::Deprecation 将 old_method 标记为已弃用并调用其他 new_method。
【问题讨论】:
标签: ruby-on-rails ruby deprecated activesupport
您可能想查看lib/active_support/deprecation/method_wrappers.rb 的示例。
【讨论】:
ActiveSupport::Deprecation.deprecate_methods(target_module, :deprecated_method => :new_method)它在给出的消息中使用新方法。还有其他选择,但没有很好的文档记录。谢谢。
正如Roman 所说,可以通过 ActiveSupport::Deprecation.deprecate_methods(target_module, *deprecated_methods)
地点:
target_module 是方法所属的模块或类。deprecated_methods 是一个符号数组。在最后一个方法中可以给定选项来自定义弃用消息。
ActiveSupport::Deprecation.deprecate_methods(target_module, :old_method, \
:other_old_method => :new_method, :another_old_method => "custom message")
此示例显示调用 old_method 时的默认消息,在第二个示例中注释“use new_method instead”,以及带有 :another_old_method 的自定义消息。
注意事项:不推荐使用的方法应该定义(之前)并将被执行。 :new_method 不会自动调用。 (还有更多选择,但我不知道)
【讨论】: