使用sunspot_rails时@ search.results = []

时间:2014-09-24 08:34:08

标签: ruby-on-rails ruby solr sunspot-rails sunspot-solr

看来,视图的搜索表单肯定可以投射搜索词,但是 @ search.results等于[]。 当我检查Solr管理员时,reindex看起来很顺利,但我也不能在这里搜索。 请给我你的建议。

显示以下相关文件。

messages_controller.rb

def index
   @search = Message.all.search do
     fulltext params[:search]
   end
   @messages = @search.results
end

message.rb

class Message < ActiveRecord::Base
  belongs_to :user
  scope :recent, -> { order(created_at: :desc) }
  validates :content, presence: true, length: { maximum: 200 }
  validates :user_id, presence: true

  searchable do
    string :content
  end
end

home.html.erb

<%= form_tag messages_path, :method => :get do %>
        <p>
          <%= text_field_tag :search, params[:search] %>
          <%= submit_tag "Search", :name => nil %>
          <% end %>

的routes.rb

  resources :messages, only: [:index, :new, :create, :destroy]

谢谢,

1 个答案:

答案 0 :(得分:0)

变化:

searchable do
  string :content
end

要:

searchable do
  text :content
end

从doc:文本字段将是全文可搜索的。其他字段(例如,整数和字符串)可用于范围查询。