Sunspot_Rails - undefined метод `searchable 'на странице
У меня есть модель с блоком searchable
, например:
class Contact < ActiveRecord::Base
searchable do
text :contact_name, :company_name, :contact_email
end
end
В действии контроллера index
я вызываю Contact.new
, что дает мне сообщение об ошибке на странице, которое в настоящее время выполняется на нашем промежуточном сервере:
undefined метод `searchable 'для # < Class: 0xce0bf80 >
Трассировка стека указывает на блок searchable
в модели через строку Contact.new
в контроллере.
Когда я запускаю код локально, либо на веб-странице, либо на консоли, либо через консоль на промежуточном сервере, эта ошибка не появляется - только на промежуточной веб-странице.
Служба Solr работает на промежуточном сервере, и данные были успешно проиндексированы. Любые теории о том, почему он не играет в мяч в постановке, будут приняты.
ИЗМЕНИТЬ
В ответ на вопрос Ник ниже, Gemfile просто имеет эту строку для Sunspot: gem 'sunspot_rails'
Для Gemfile.lock это все строки, которые я мог бы найти, содержащие ссылки Sunspot или Solr:
GEM
rsolr (0.12.1)
builder (>= 2.1.2)
sunspot (1.2.1)
escape (= 0.0.4)
pr_geohash (~> 1.0)
rsolr (= 0.12.1)
sunspot_rails (1.2.1)
nokogiri
sunspot (= 1.2.1)
DEPENDENCIES
sunspot_rails
Ответы
Ответ 1
У меня была такая же проблема, и мне просто пришлось перезапустить сервер rails. Простое решение, но если бы не место для другого сообщения, которое предложило мне это сделать, я, вероятно, попытался бы отладить ошибку в течение гораздо более длительного времени, прежде чем просто попытаться перезапустить сервер, хе-хе...
Ответ 2
Это также может произойти, если вы забудете перезапустить сервер рельсов после установки нового драгоценного камня солнечных пятен
Ответ 3
Звучит для меня как драгоценный камень, который неправильно загружается на вашем промежуточном сайте. Если вы можете показать соответствующие разделы вашего Gemfile и Gemfile.lock, я могу обновить больше ответа.
EDIT - Gemfile отлично выглядит. Извините, но у меня нет ничего, не имея возможности получить доступ к приложению. Сообщить об ошибке в списке рассылки Sunspot? http://outoftime.github.com/sunspot
Ответ 4
После прочтения этого сообщения
Я понял, что проблема заключается в том, что линия задач rake предотвращает загрузку Sunspot
Мне удалось решить его следующим образом:
Я удалил следующую строку из своего Rakefile
требуют "солнечных пятен/рельсов/задач"
Я создал файл sunspot.rake и добавил к нему содержимое следующего файла из источника драгоценных камней sunspot:
/gems/sunspot _rails-1.2.1/lib/sunspot/rails/tasks.rb
Я знаю, что это взломать, но он работает.