К примеру есть две таблицы: книги (id, заголовок, дата) и авторы (id, имя, страна, дата). При поиске книги, я вывожу всю информацию об авторе. Т.е. по итогу, мы видим колонки:
books.id, books.title, books.created_at, authors.name, authors.country, authors.created_at
В обычно ситуации, я могу сортировать как угодно, передав в
orders например
authors.country desc. Однако, при работе с thinking_sphinx это как-то не выходит. Сейчас book_index.rb выглядит так:
ThinkingSphinx::Index.define :book, with: :real_time do
indexes title, sortable: true
indexes author.name, as: :author_name, sortable: true
indexes author.country, as: :author_country, sortable: true
has title, type: string
has author.name, type: string
has author.country, type: string
has created_at, type: :timestamp
has author.created_at, type: :timestamp
end
При поиске соответственно пишу:
Book.search params[:search], sql: {include: :author}, order: 'author_name asc'
В ответ получаю:
index book_core: sort_by attribute 'author_name' not found - SELECT * FROM 'book_core' WHERE MATCH('blablabla') AND 'sphinx_deleted' = 0 ORDER BY 'author_name' asc LIMIT 0, 50; SHOW META
Вопрос: что не так делаю? Т.е. мне хотелось бы иметь возможность сортировать данные не только по основной таблице (books), но и по атрибутам связанной.