Метод сфинкса мышления Рельса - PullRequest
2 голосов
/ 21 ноября 2011

Я пытаюсь настроить мышление сфинкса в моем приложении rails 3.Я установил mysql и установил sphinx без ошибок.В моем gemfile у меня есть

gem "riddle", "~> 1.5.0"
gem "thinking-sphinx", "~> 2.0.10"

Эти установки отлично.В моей модели у меня есть

define_index do
    indexes :name
    indexes acad_field
    indexes expertise
    indexes interests
    indexes experience
    indexes marital_status
    indexes email
    indexes place_of_birth
    indexes birthyear
    indexes hometown
    indexes current_residence
    indexes languages
    indexes nationalities
    indexes ethnicities_mom_dad
    indexes institution
    indexes program

end

, и в моем индексе в моем контроллере у меня есть

def index
 #@profiles = Profile.all
 @profiles = Profile.search params[:search]
 respond_to do |format|
   format.html # index.html.erb
   format.json { render :json => @profiles }
 end
end

в моих маршрутах, когда я пытаюсь бежать, у меня есть

match "profiles?search=:search", :to => "profiles#index"

поиск я получаю ошибку

Routing Error

undefined method `define_index' for #<Class:0xb3ada670>

Что я здесь не так делаю.

Ответы [ 3 ]

2 голосов
/ 14 декабря 2011

Мне просто нужно было запустить

rake thinking_sphinx:rebuild

в терминале

0 голосов
/ 06 июля 2015

вы, вероятно, не запускали 'bundle install' после добавления спецификации gem в ваш gemfile, я не думаю, что rake ts: rebuild фактически решила эту проблему:)

0 голосов
/ 29 ноября 2011

Основываясь на комментарии @fuzzyalej, необходимо выполнить следующие шаги:

  • Заменить соответствующую линию драгоценного камня на gem "thinking-sphinx", "~> 2.0.10", :require => 'thinking_sphinx'
  • Вам не нужно добавлять? Search =: search to routing match, потому что рельсы могут принимать переменные GET без других спецификаций.
...