大家好,我知道这是一个非常糟糕的主意,但我想加入三个表来查询多态关联
例如
class Article
has_many :comments, :as=>:commentable
end
class Post
has_many :comments, :as=>:commentable
end
class Comment
belongs_to :commentable, :polymorphic=>:true
end
我需要得到与
相似的东西Comment.all(:joins=>:commentable)
当然我无法写出这样的连接,但我需要能够加入这三个表的东西
我正在通过几个表编写cimplicate搜索用户可以选择不同的选项让我们说User has_one Comment
并且我想要选择所有注释某些内容(文章或帖子)的用户,其中包含一些短语所以我需要类似于{的东西{1}}
答案 0 :(得分:0)
我想我想做的事情是不可能的,因为
加入格式
SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name
我必须在commentable_id上加入表格而不会对不同的表格产生任何影响这可能是一团糟但也许我错了
<强>编辑强> 我接下来做了
User.all(:joins=>"clean sql inner join of three tables on commentable_id",
:conditions=>[" (comments.commentable_class="Article" AND articles.body LIKE (?))
OR (comments.commentable_class="Post" AND posts.header LIKE (?))", value, value])
我仍在重构代码,稍后我会发布结果