0

는 :태양 흑점 : 특정 양의 연관성을 페이지 매김? 나는 다음과 연관성이있는 경우

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

제품을 표시 할보기에서이 제한을 수행해야한다고 생각합니다. 왜냐하면 당신은'Product' 모델로 검색하고있어'UserPrice'를 고려하지 않기 때문입니다. – bor1s

+0

@ bor1s 그건 계획처럼 들리 겠지만, 더 자세히 살펴 보겠습니다. 어디서부터 시작하겠습니까, will_paginate gem에서 ....? – LearningRoR

답변

1

Product 모델의 '페이지가 매겨진'컬렉션이므로 Will_Paginate가 도움이되지 않습니다. 이런 식으로하는 것이 더 바람직 할 것 같습니다.

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

이것은 단지 예입니다. 또한 UserPrice 모델에 대해 scope을 구현하거나 주문할 수 있습니다. 희망이 있으면 도움이 될 것입니다. 행운을 빌어 요.

+0

user_prices를보기 위해'each' 메소드를 사용해야하기 때문에 이것은 작동하지 않습니다. 내 질문을 편집하여 내 뜻을 알려줍니다. – LearningRoR

+0

'.each' :를 쓰는 것을 잊어 버렸습니다. 이제는 잘 작동합니다. 내 업데이트 된 게시물을 참조하십시오 – bor1s

+0

고마워, 아마 내 다른 질문을 해결할 수 있습니다 : http : //stackoverflow.com/questions/8113402/how-to-paginate-with-sunspot-in-this-manner – LearningRoR