2014-01-08 2 views
0

저는 Ruby, Rails 및 Sunspot에 대해 매우 새롭습니다. Solr는 말할 것도없고! 그래서,이 모든 것이 조금 '벙어리'로 보인다면 나는 실례합니다.태양 흑점이있는 레일 - 패싯 결과를 어떻게 출력합니까?

다음과 같은 설정이 있습니다.

모델

class Pin < ActiveRecord::Base 

    belongs_to :user 
    has_many :replies 
    has_one :type 

    validates :user_id, presence: true 
    validates :type_id, presence: true 
    validates :title, presence: true 
    validates :description, presence: true 

    searchable do 

     text :title, :boost => 5 
     text :description 
     integer :type_id 

    end 

end 

컨트롤러

def index 

@search = Pin.search do 

    fulltext params[:keywords] 
    facet :type_id 

end 

@pins = @search.results 

end 

보기

<% @search.facet(:type_id).rows.each do |facet| %> 
      <%= puts "Type #{facet.value} has #{facet.count} pins!" %> 
     <% end %> 

그러나 나는 t에이를 보려고 할 때 그는 내가 얻을 수있는 모든 것 :

[<Sunspot::Search::FacetRow:1 (6)>, <Sunspot::Search::FacetRow:2 (6)>] 

내가 여기에 뭔가를 놓친가요?

각 핀에 사용할 수있는 유형을 출력하고 싶습니다.

감사합니다. 마이키

업데이트 : 내가보기에이 일을해야

그래서, 그것은 밝혀 :

<% @search.facet(:type_id).rows.each do |facet| %> 
<%= facet.value %> 
<% end %> 

이 이제 핀에서 유형 ID를 출력합니다. 큰! 그러나이 ID가 TITLE 유형이있는 다른 테이블에 조인 된 경우 어떻게 그 패싯을 붙잡을 수 있습니까 ??

그래서 모든 핀은 유형 테이블과 관련된 유형 ID를 가지고 있습니다. 내 모델이 올바르게 설정되었지만이를 수행하는 방법을 찾지 못했습니다.

감사합니다.

<%= @search.facet(:type_id).rows.each do |facet| %> 

당신이 대신

<% @search.facet(:type_id).rows.each do |facet| %> 

로 교체

@search.facet(:type_id).rows.each do |facet| 

의 결과를 출력됩니다

답변

1

이 당신이 할 때 실제로 ERB 문제

입니다 공지 사항 '='부족)

+0

추가 '='는 실제로 오타였습니다. 문제는 여전히 있습니다. 제목을 가져와야하지만 객체 ID 만 반환합니다. 나는 이것으로 일할 수 있고 해결 방법이 있지만 조금 더러운 것처럼 보인다. –