在我的应用文章中,通过自引用加入模型 article_relationships 有许多子或父文章
class Article < ActiveRecord::Base
has_many :parent_child_relationships,
:class_name => "ArticleRelationship",
:foreign_key => :child_id,
:dependent => :destroy
has_many :parents,
:through => :parent_child_relationships,
:source => :parent
has_many :child_parent_relationships,
:class_name => "ArticleRelationship",
:foreign_key => :parent_id,
:dependent => :destroy
has_many :children,
:through => :child_parent_relationships,
:source => :child
end
class ArticleRelationship < ActiveRecord::Base
belongs_to :parent, :class_name => "Article"
belongs_to :child, :class_name => "Article"
end
我对 article_relationships 有一个相当复杂的查询,该查询深入到文章表中
ArticleRelationship.joins(:parent, :child).where("((articles.type IN (:parent_article_type) AND parent_id IN (:ids)) OR (children_article_relationships.type IN (:child_article_type) AND child_id IN (:ids)) AND (article_relationships.created_at > :date OR article_relationships.updated_at > :date))", {:parent_article_type => "Emotion", :child_article_type => "Gateway", :ids => [1,2,3,4], :date => "2010-01-01"})
有什么办法可以有效地索引这个吗?