2010-07-14 55 views
0

類別:在收集(的has_many協會)找到行的數量限制

has_many :products 
has_many :deals, :through => :products 

產品

has_many :deals 

我想類別頁面上顯示交易的數量有限。

在categories_helper.rb:

def deals 
@category.products.collect { |c| c.deals}.flatten 
end 

在show.html.erb(類別):

<% for deal in deals %> 
<%= deal.name %> 
<% end %> 

這工作得很好,但它顯然拋出的所有的交易該類別的產品和我只需要其中8個。 所以我想申請一個(:限制=> 8).collect。我無法弄清楚它會去哪裏。另外我想用一個(:offset => 8)做第二次查找,我只會根據請求顯示。

回答

1

你不需要collect,因爲你有has-many-through關聯。我相信這是你要找的東西:

@category.deals.all(:limit => 8) 
+0

Outch!這比我腦海中的結更簡單得多...非常感謝! Val – 2010-07-14 15:24:53

+0

不客氣:] – 2010-07-14 15:50:35

1

這應該工作:

@category.products.find(:all, :limit => 8) 
+0

喜燦,感謝您的答覆,但我試圖讓與產品相關的交易,這是世界衛生大會我做的收集。 – 2010-07-14 12:40:57

+0

@val_to_many:你可以爲此添加'.collect',我正在更新我的答案。 – 2010-07-14 12:56:31

+0

等一下,你想要8個或8個產品? – 2010-07-14 12:57:16