Sunspot не читает sunspot.yml, когда внутри монтируется двигатель

Я использую самоцвет солнечного пятна в монтируемом двигателе. Я создаю движок из существующего приложения Rails 3.2, поэтому я знаю, что моя установка работает, когда в стандартном приложении rails.

По сути, я не могу получить Sunspot в разработке (при использовании spec/dummy - я знаю, что он обычно используется для тестирования, но все остальное работает просто отлично), чтобы загрузить sunspot.yml файл и найти работающую версию Solr.

Мой gemspec имеет:

s.add_dependency 'sunspot_rails', '= 2.0.0.pre.120417'
s.add_development_dependency 'sunspot_solr', '~> 1.3.3'
s.add_development_dependency 'sunspot_test', '~> 0.4.0'

У моего монтируемого движка есть тестовое приложение для рельсов в spec/dummy для тестирования. Мой spec/dummy / config / sunspot.yml содержит:

development:
  solr:
    port: 8080
    path: /solr
    hostname: localhost

Когда я запускаю консоль рельсов (изнутри spec/dummy) с bundle exec rails console Я получаю нормальную консоль рельсов.

Бег Sunspot.config производит:

> Sunspot.config
=> #<LightConfig::Configuration:0x007f864aeee8a0
 @properties=
  {:solr=>
    #<LightConfig::Configuration:0x007f864aeed0b8
     @properties=
      {:url=>"http://127.0.0.1:8983/solr",
       :read_timeout=>nil,
       :open_timeout=>nil}>,
   :master_solr=>
    #<LightConfig::Configuration:0x007f864aefb398 @properties={:url=>nil}>,
   :pagination=>
    #<LightConfig::Configuration:0x007f864af06ae0
     @properties={:default_per_page=>30}>,
   :indexing=>
    #<LightConfig::Configuration:0x007f864af0bf18
     @properties={:default_batch_size=>50}>}>

Ясно, что Sunspot не поднимает мою sunspot.yml файл, потому что порт работает 8983 вместо 8080 где это на самом деле работает.

Запуск сервера Solr через bundle exec rake sunspot:solr:start (внутри спец / манекен) или bundle exec rake app:sunspot:solr:start (из корня движка) правильно запускает сервер на порту 8080 так что я знаю, что это чтение sunspot.yml

Есть несколько других людей с похожими вопросами, но я не использую sunspot_mongoid жемчужина и ощущение, что это как-то связано с тем, что он работает внутри двигателя.

Если бы кто-нибудь мог помочь мне, это было бы очень ценно!

2 ответа

Я не могу сказать, что здесь не так, но я могу сказать вам, что я делаю то же самое - делаю движок из приложения rails - и что у меня Solr 2.0.0-pre-что-то и теперь работает 2.1.0 во всех средах локально и развернуто. Так что это может сработать.

Я думаю, что я бы продвинулся вперед, читая код, связанный с запуском solr и как он находит конфигурацию.

Не очень полезно, в целом - но, по крайней мере, теперь есть ответ, который предполагает, что вы не обречены.:)

В конце концов я нашел ответ на это. Добавление s.add_development_dependency 'sunspot_solr', '~> 1.3.3' добавляет sunspot_solr в профиле разработки только для драгоценного камня - не при запуске приложения, содержащего драгоценный камень, в режиме разработки. Это имеет смысл для "нормального" драгоценного камня - я просто не думал прямо.

Таким образом, чтобы получить драгоценный камень в ваше приложение, содержащее движок, вы должны иметь его как обычный add_dependency или включить его в приложение Gemfile,

Извините за тратить время @ian

Дейв

Другие вопросы по тегам