Sunspot: нумерация определенного количества ассоциации? - PullRequest
0 голосов
/ 14 ноября 2011

Если у меня есть следующие ассоциации:

Product has_many :user_prices
UserPrice belongs_to :product

И моя цель - показать 5 товаров на странице и только столько user_prices (скажем, 5 каждый):

class SearchController < ApplicationController

  def index
    @search = Product.search do
      fulltext params[:search]
      # This gives 5 producuts per page but how about that and 5 UserPrices?
      paginate(:per_page => 5, :page => params[:page])
    end
    @products = @search.results
  end
end

Просмотр: поиск / индекс

<% @products.each do |p| %>
 <%= p.name %>
  <% p.user_prices.each do |up| %>
    <%= number_to_currency(up.price) %>
    <%= up.purchase_date %>
  <% end %>
<% end %>

Как бы вы могли сделать это в Sunspot?

1 Ответ

1 голос
/ 14 ноября 2011

Will_Paginate вам здесь не поможет, потому что вы уже «разбили на страницы» коллекцию Product модели. Я думаю, вам будет лучше сделать что-то вроде этого:

<% @products.each do |p| %>
  <% p.user_prices.last(5).each do |price| %>
    <%= #some info from user prices %>
  <% end %>
<% end %>

это только для примера. Вы также можете реализовать scope для модели UserPrice, скажем, заказать ее или что-то еще. Надеюсь, это поможет вам. Удачи:)

...