2010-09-15 79 views
0

我有一個模型,文章可以有多個標籤(和一個標籤多個文章)。文章有兩個小類,產品和工具包。產品有一個類別,套件沒有。complex arel查詢

如何獲得某個標籤(我知道tag.id)的所有文章(包和產品),並加載產品的類別(避免n + 1)?

回答

0

假設您的關聯已經設置(即標籤has_many:article_tags等文章),如果您使用Rails 3,則可以在執行查找時使用#includes。將您的belongs_to的:類別到您的文章類(是的,它的語義好這樣做),那麼:

@tag = Tag.first 
@tag.articles.includes(:category) 

應該工作。

http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations

+0

不幸的是,事實並非如此。沒有找到名爲「類別」的協會;也許你拼錯了嗎?文章沒有分類,只有產品。 – Jan 2010-09-15 11:55:22

+0

啊,我明白了,你先把文章分類放到文章中,但是這樣做在語義上是正確的,但不是域名。套件由多個文章組成,它們可以有不同的類別作爲回報。 – Jan 2010-09-15 11:57:20

+0

您可以發佈您的產品和產品的型號代碼嗎? – jenjenut233 2010-09-20 22:20:17