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