如何在rails(v2.3.5)中编写一个find(:all)查询,该查询在我运行'find'的模型和另一个表中都有参数?例如我试图通过'author'和'tag'搜索'posts'。作者是post的属性,而tag通过另一个表与它相关联。我可以通过包含':joins =>来获取标签:标签',并添加条件,但后来我无法弄清楚如何添加条件来指定给定的用户。
对于rails查询语法的良好参考,任何建议都会很棒。我似乎无法从查询的v2.3 Rails指南中找到足够的数据。谢谢!
答案 0 :(得分:1)
这就是你要找的东西:
Post.all(:include => :tags,
:conditions => ["posts.author_id=? AND tags.name IN (?)",
author_id, ['tag1','tag2']])
我假设您需要查看标签,这就是我使用include而不是join的原因。它可以防止将来的SQL调用加载标记。如果您经常这样做,那么您将要查看named_scope(或Rails 3中的范围)。