在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
方法”?