在Ruby中禁止特定警告

时间:2011-07-31 17:07:23

标签: ruby warnings suppress-warnings

我见过很多帖子提供-W0标志作为这个问题的答案,但我不想压制所有警告,只是警告特定值。

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

Object#id will be deprecated; use Object#object_id

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

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

2 个答案:

答案 0 :(得分:10)

如果有一个特定的代码段产生警告,你可以尝试在ActiveSupport的内核模块中混合并用silence_warnings块包装(例如直接从RDoc拉出):< / p>

silence_warnings do
  value = do_something_that_causes_warning # no warning voiced
end

noisy_call # warning voiced

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

答案 1 :(得分:3)

修改:如果您使用read_attribute(:id),那么您应该避免使用。谢谢杰里米!

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