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
Дейв