在Ruby中禁止特定警告

我已经看到很多post提供-W0标志作为这个问题的答案,但我不想压制所有警告,只是警告特定值。

我正在Ruby 1.8.7上运行非rails应用程序(尽管使用ActiveRecord)。 我想保留所有警告,除了以下DEPRECATION警告:

Object#id will be deprecated; use Object#object_id

如果那是不可能的,我想抛弃所有弃用警告。 至少Java可以让你这样做。 Ruby怎么样?

更新:我已经对两个答案进行了投票,但检查了后来的搜索者希望在这里找到的答案。

如果存在产生警告的特定代码段,您可以尝试在ActiveSupport的Kernel模块中混合并使用silence_warnings块(例如直接从RDoc中提取):

 silence_warnings do value = do_something_that_causes_warning # no warning voiced end noisy_call # warning voiced 

是否绝对有必要压制它? 这不像是你在编译东西而且必须同时筛选大量的警告……

编辑:如果你使用read_attribute(:id) ,那么你应该避免waring。 谢谢杰里米!

我不是Rails开发人员,但是没有一种方法可以让你说“我想要数据库字段id ,而不是对象的id方法”?