带太阳黑子的轨道 - 如何输出小平面结果?

时间:2014-01-08 15:15:41

标签: ruby-on-rails solr sunspot

我对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 %>

但是当我尝试在页面上查看此内容时,我得到的是:

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

我在这里错过了什么吗?

我希望能够输出每个引脚的可用类型。

谢谢! MIKEY

更新

所以,事实证明我应该在我看来这样做:

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

现在从引脚输出类型ID。大!但是,如果此ID已连接到另一个表,其中也包含TITLE类型,我如何使用facet获取它?

因此,所有引脚都有一个与类型表相关的类型ID。我的模型设置正确,但我无法弄清楚如何做到这一点。

谢谢!

1 个答案:

答案 0 :(得分:1)

这实际上是一个ERB问题

当你这样做时:

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

您正在输出

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

替换为

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

(注意缺少'=')