2

这个问题中解释了如何做一个简单的警告(但不记录跟踪所以不是那么有用)并且有很多方法可以做到这一点,但我没有找到指南。

如何使用 ActiveSupport::Deprecation 将 old_method 标记为已弃用并调用其他 new_method。

4

2 回答 2

0

你可能想看看lib/active_support/deprecation/method_wrappers.rb一个例子。

于 2011-05-15T19:15:24.590 回答
0

正如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不会自动调用。(还有更多选择,但我不知道)

于 2011-05-20T12:11:41.267 回答