在下面的示例中,我一直在尝试弄清楚如何正确使用作用域。
有一个表Notes,它有一个项目的多态关联。但我也允许有“全局”注释,所以当我在注释上做作用域时,我希望它返回Items的多态关联和NULL多态字段,以及其他一些条件,比如IsReviewed类型布尔值。我试着做了以下几件事,但效果不佳。
scope :is_reviewed, lambda { { :include => [:category, :notable], :conditions => ["is_reviewed = ?", true] } }
然后尝试了,但没有返回“全局的”
scope :is_reviewed, lambda { { :include => [:category, :notable], :conditions => ["notable_type = 'Item' and is_reviewed = ?", true] } }
我试过了,但似乎不能正常工作
scope :is_reviewed, lambda { { :include => [:category, :notable], :conditions => ["(notable_type = 'Item' or notable_type = NULL) and is_reviewed = ?", true] } }
如有任何想法或帮助,我们将不胜感激。谢谢
发布于 2010-11-10 01:25:13
我实际上注意到我有另一个问题导致这个作用域不能工作。如果存在值得注意的对象,则以下作用域确实可以用于检索值得注意的对象,并且您可以在partials或helpers中搜索值得注意的类型,以便为值得注意的类型执行正确的逻辑。
scope :is_reviewed, lambda { { :include => [:category, :notable], :conditions => ["is_reviewed = ?", true] } }
https://stackoverflow.com/questions/4129131
复制相似问题