0

我正在使用 rails,我有两个表 Post 和 Tags 与 habtm 关系。

以下句子起作用:

@posts = Post.find(:all, :include=>:tags, :conditions => ['tags.term LIKE ? OR tags.term LIKE ?', "%Barcelona%", "%restaurante%" ])

或者

@posts = Post.find(:all, :include=>:tags, :conditions => ['tags.term  in (?)', ['Barcelona','restaurante'] ])

但这一个,AND有条件,不起作用:

@posts = Post.find(:all, :include=>:tags, :conditions => ['tags.term LIKE ? AND tags.term LIKE ?', "%Barcelona%", "%restaurante%" ])

我想知道获得所有包含这两者的帖子的句子tags.term:“Barcelona and restaurante”

提前致谢

埃米利奥

4

1 回答 1

0

我回应自己,为我工作,希望可以帮助别人:

@posts = Post.find_by_sql("select * from posts p where (select count(distinct t.id) from posts_tags pt left join tags t on pt.tag_id=t.id where t.term in ('Barcelona', 'restaurante ') 和 pt.post_id = p.id) >= 2")

于 2012-08-16T10:19:09.070 回答