Rails: проблемы со Sphinx

программирование Linux ruby ruby on rails

Нужно организовать выборку определенных пользователей из БД (проживающих в определенном городе, имеющих определенный тип аккаунта на сайте).
Установил gem 'thinking-sphinx'.
При поиске в консоли 'search -a Москва' выдает выборку правильно, но русские символы не печатает, вместо них знаки вопроса, хотя проставлено и в базе и в настройках utf-8.

Далее... В модель user.rb добавил:

define_index do
# fields
indexes name, :sortable => true
indexes region
# attributes
has created_at, updated_at
end

Не знаю, правильно ли это, со сфинксом не работал еще.
В users_helper.rb добавил:

def can_help?(user)
sphinx = Sphinx.new
sphinx.set_match_mode(Sphinx::SPH_MATCH_ANY)
result = sphinx.query('Москва')

# Получить соответствующие объекты модели
ids = result[:matches].map { |id, value| user.id }.join(',')
can_help = User.find :all, :conditions => "id IN (#{ids})"

# Получить выдержки
docs = can_help.map { |user| user.name }
excerpts = sphinx.build_excerpts(docs, 'index', 'Москва')
end

В представлении вывожу: <%= can_help?(@user) %>

В итоге получаю: uninitialized constant UsersHelper::Sphinx

ЧЯДНТ? Почему Rails считает это константой, и не создает объект для нового поиска?
Ответы:
Потому что надо писать User.search("Москва").


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.