我一直试图弄清楚如何正确使用以下示例中的范围。
有一个表注释,它与项目具有多态关联。但我也允许有“全局”注释,所以当我在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] } }
任何想法或帮助都将受到高度赞赏。感谢
答案 0 :(得分:0)
我实际上注意到我有另一个问题导致这个范围不起作用。以下作用域实际上可用于在存在一个值时检索值得注意的对象,并且可以搜索部分或帮助器中的值得注意的类型,以便为值得注意的类型执行正确的逻辑。
scope :is_reviewed, lambda { { :include => [:category, :notable], :conditions => ["is_reviewed = ?", true] } }