@search.results = [] при использовании sunspot_rails

Кажется, что форма поиска представления, безусловно, может привести искомое слово, но @search.results равно []. И когда я проверяю администратора Solr, переиндексация выглядит хорошо, но я также не могу искать здесь. Пожалуйста, дайте мне свой совет.

Показаны соответствующие файлы ниже.

messages_controller.rb

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

сообщение.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 %>

маршруты.rb

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

Спасибо,


person user1436614    schedule 24.09.2014    source источник


Ответы (1)


Изменять:

searchable do
  string :content
end

To:

searchable do
  text :content
end

Из документа: текстовые поля будут доступны для полнотекстового поиска. Другие поля (например, целое число и строка) могут использоваться для определения области запросов.

person BroiSatse    schedule 24.09.2014
comment
Спасибо за ваш ответ. Но это не работает. Тип содержимого модели сообщения — строка. class CreateMessages ‹ ActiveRecord::Migration def change create_table :messages do |t| t.string : содержимое t.integer : user_id - person user1436614; 24.09.2014