在这个问题中解释了如何做一个简单的警告(但不记录跟踪所以不是那么有用)并且有很多方法可以做到这一点,但我没有找到指南。
如何使用 ActiveSupport::Deprecation 将 old_method 标记为已弃用并调用其他 new_method。
在这个问题中解释了如何做一个简单的警告(但不记录跟踪所以不是那么有用)并且有很多方法可以做到这一点,但我没有找到指南。
如何使用 ActiveSupport::Deprecation 将 old_method 标记为已弃用并调用其他 new_method。
你可能想看看lib/active_support/deprecation/method_wrappers.rb
一个例子。
正如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 时的默认消息,在第二个示例中添加注释以“使用 new_method 代替”,以及带有 :another_old_method 的自定义消息。
注意:不推荐使用的方法应该定义(之前)并将被执行。:new_method不会自动调用。(还有更多选择,但我不知道)