2010-09-15 19 views
0

如何在rails(v2.3.5)中編寫一個find(:all)查詢,該查詢在模型中都有參數,我正在運行'find'和另一個表中?例如我試圖通過「作者」和「標籤」來搜索「帖子」。作者是帖子的屬性,而標籤通過另一個表與其關聯。我可以通過添加':joins =>:tags'來獲取標籤,並添加條件,但是我無法弄清楚如何添加條件來指定給定的用戶。Rails在兩個表上的屬性查詢

另外,任何關於rails查詢語法的參考建議都會很棒。我似乎無法從v2.3 Rails指南查詢中找到足夠的東西。謝謝!

回答

1

這是你在找什麼:

Post.all(:include => :tags, 
     :conditions => ["posts.author_id=? AND tags.name IN (?)", 
          author_id, ['tag1','tag2']]) 

我假設你會需要看到的是,爲什麼我用了包括代替加入標籤。它可以防止將來的SQL調用加載標籤。如果你經常這樣做,那麼你會想看看named_scope(或Rails 3中的作用域)。

+0

可愛。雖然它不承認'posts.author_id',但'author_id'一個人工作得很好。 – 2010-09-15 18:28:37