曾经使用过回报率default_scope的吗? 永远后悔你曾经读有关此功能后,你写的代码万吨,后来意识到你需要在一个方便的方法,必要时,你不能访问记录? 尝试使用Google“如何重写default_scope”,你会发现如何做model.send(with_exclusive_scope){}万吨建议,但没有真正的方式当你真的需要它完全取消模型(如例如测试)。 下面是一个简单的解决方案和关于这个功能失效的几个建议:
喂,你有 class Foo < ActiveRecord::Base default_scope :conditions => { "0" } end 和在你的代码的某个地方,你需要取消default_scope。 这里是代码: RecurringDonationSchedule.send( :default_scope, {} ) default_scope仅仅是一个受保护的方法的ActiveRecord :: Base的,所以你可以调用它发送和修复你以前的错误(这是使用这种方式default_scope)。 我想你已经意识到的default_scope是坏主意,在许多情况下named_scope即使是一个绝妙的主意。 尽管如此,使用default_scope可能是一个好主意,如果你使用它进行排序,只是不使用过滤。 我希望他们能在Rails的未来版本中删除这个功能失效。 这篇文章发表在其他 , 网页 。 |