搜索

作者简历和生物 情侣我的爱好有关的文章 - 机器人
我关于移民澳洲的印象。在俄罗斯只。 为解决日常问题的食谱
Linux相关的职位 Windows相关的职位
与软件相关的职位 很多有关硬件信息
不同的工具,你可能会发现有用 关于各种Web技术的文章
一切不符合其余的菜单 RSS订阅本博客

标签云

档案

链接

安德烈Mikhalchuk的博客

English flagItalian flagKorean flagChinese (Simplified) flagPortuguese flagGerman flagFrench flagSpanish flagJapanese flagRussian flagDanish flagFinnish flagHebrew flag

Technoblog对生活

07月2,2010年的Ruby on Rails:如何重写default_scope - 一个更好的办法

曾经使用过回报率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的未来版本中删除这个功能失效。

这篇文章发表在其他网页

没有评论

到目前为止没有评论

发表评论

网站地图 (三)安德烈·Mikhalchuk,2005-2008