Rails 3 - 多态和全局范围

时间:2010-11-08 23:32:47

标签: ruby-on-rails scope polymorphic-associations

我一直试图弄清楚如何正确使用以下示例中的范围。

有一个表注释,它与项目具有多态关联。但我也允许有“全局”注释,所以当我在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] } }

任何想法或帮助都将受到高度赞赏。感谢

1 个答案:

答案 0 :(得分:0)

我实际上注意到我有另一个问题导致这个范围不起作用。以下作用域实际上可用于在存在一个值时检索值得注意的对象,并且可以搜索部分或帮助器中的值得注意的类型,以便为值得注意的类型执行正确的逻辑。

scope :is_reviewed, lambda { { :include => [:category, :notable], :conditions => ["is_reviewed = ?", true] } }