Как вы сортируете Использование Thinking Sphinx на Rails 3? - PullRequest
5 голосов
/ 14 мая 2011

Я пытаюсь выполнить простую сортировку, используя параметры, переданные моему контроллеру. Я следую документации на веб-сайте Searching & Thinking Sphinx, и у меня возникла следующая ошибка. Что я делаю не так?

Следующий объект @places является экземпляром класса think Sphinx.

 @places = Place.search(params[:q], :order => :created_at)

ThinkingSphinx::SphinxError (index place_core: sort-by attribute 'created_at' not found):

1 Ответ

7 голосов
/ 14 мая 2011

Вам необходимо добавить поля, по которым вы хотите искать.Затем для сортировки по полю вам нужно пометить его как сортируемое в вашей модели, или вам нужно добавить атрибут в методе define_index как , объясненный здесь .

Для вашей модели что-то вроде этого:

class Place < ActiveRecord::Base
  # ...

  define_index do
    # fields
    indexes subject, :sortable => true
    indexes content
    indexes author.name, :as => :author, :sortable => true

    # attributes
    has created_at
  end

  # ...
end

В этом примере предмет, автор и create_at сортируются.

...