运行我的功能规格时收到此消息:
弃用警告:不推荐使用ActiveRecord :: Base.raise_in_transactional_callbacks =,不会有任何影响,并且无需替换即可删除。
我正在使用Rails 5.0.0.rc1,我不确定是什么抛出这个弃用警告。
我在application.rb
文件中有这个。我删除了它,弃用警告消失了:
config.active_record.raise_in_transactional_callbacks = true
我想了解此弃用警告实际含义的提示,并了解触发此弃用警告的原因。
答案 0 :(得分:34)
我认为这种行为是在4.1和4.2之间添加的,作为对rails 5中不再相关的问题的临时解决方案:
目前,Active Record可以抑制其中出现的错误 after_rollback或after_commit回调并仅将它们打印到 日志。在下一个版本中,将不再抑制这些错误。 相反,错误将像其他Active一样正常传播 记录回调。
当你定义after_rollback或after_commit回调时,你会 收到有关即将发生的变更的弃用警告。当你是 准备就绪,您可以选择进入新行为并删除弃用 通过将以下配置添加到您的 配置/ application.rb中:
Random random = new Random(); for (int i=0; i< arraysize; i++){ beepArray[i] = random.nextInt((0 - count)+ 1); }
为了澄清,正如@pixelearth建议我在下面的评论不够明确/突出。在Rails 5及更高版本中删除config.active_record.raise_in_transactional_callbacks = true
:
config/application.rb
答案 1 :(得分:2)
在此处写这个以获得@R的更多可见性。 Hatherall的评论。
升级到5时我收到此警告不是因为我DID在application.rb中没有以下设置,但是因为我发现了。
在rails 5中,从application.rb
中删除以下行config.active_record.raise_in_transactional_callbacks = true