1

カテゴリー

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

製品

has_many :deals

カテゴリページに限られた数の取引を表示したい。

カテゴリ_helper.rb:

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

show.html.erb(カテゴリ):

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

これは問題なく機能しますが、明らかにそのカテゴリの製品のすべての取引が破棄され、そのうちの8つだけが必要です。そこで、.collectに(:limit => 8)を適用したいと思います。どこに行くのかわからない。また、リクエストがあった場合にのみ表示する(:offset => 8)を使用して2番目の検索を実行したいと思います。

4

2 に答える 2

2

collect関連付けがあるため、は必要ありませんhas-many-through。これがあなたが探しているものだと思います:

@category.deals.all(:limit => 8)
于 2010-07-14T12:59:16.580 に答える
1

This should work:

@category.products.find(:all, :limit => 8)
于 2010-07-14T12:38:38.643 に答える