: ограничение количества строк, найденных в коллекции (ассоциация has_many) - PullRequest
1 голос
/ 14 июля 2010

Категория

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

Продукт

has_many :deals

Я хочу отображать ограниченное количество сделок на странице категории.

In Categories_helper.rb:

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

В show.html.erb (Категория):

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

Это прекрасно работает, НО, очевидно, отбрасывает все предложения на товары в этой категории, и я хочу только 8 из них. Так что я бы хотел применить (: limit => 8) к .collect. Я просто не могу понять, куда это пойдет. Также я хотел бы сделать вторую находку с ((offset => 8), которую я покажу только по запросу.

Ответы [ 2 ]

2 голосов
/ 14 июля 2010

Вам не нужен collect, поскольку у вас есть ассоциация has-many-through.Я считаю, что это то, что вы ищете:

@category.deals.all(:limit => 8)
1 голос
/ 14 июля 2010

Это должно работать:

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