Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails sunspot_rails不读取sunspot.yml的配置_Ruby On Rails_Ruby On Rails 3_Solr_Sunspot_Sunspot Rails - Fatal编程技术网

Ruby on rails sunspot_rails不读取sunspot.yml的配置

Ruby on rails sunspot_rails不读取sunspot.yml的配置,ruby-on-rails,ruby-on-rails-3,solr,sunspot,sunspot-rails,Ruby On Rails,Ruby On Rails 3,Solr,Sunspot,Sunspot Rails,我试图用mongoid来使用太阳黑子,但太阳黑子并没有连接到Solr。尝试连接到Solr时Rails报告了以下错误 Errno::ECONNREFUSED (Connection refused - connect(2)) 我使用bundle exec rake sunspot:solr:start来运行solr,并且我已经确认solr正在config/sunspot.yml中定义的开发端口(8982)上运行 在Rails控制台中运行Sunspot.config时,我看到: @prope

我试图用mongoid来使用太阳黑子,但太阳黑子并没有连接到Solr。尝试连接到Solr时Rails报告了以下错误

Errno::ECONNREFUSED (Connection refused - connect(2))
我使用
bundle exec rake sunspot:solr:start
来运行solr,并且我已经确认solr正在config/sunspot.yml中定义的开发端口(8982)上运行

在Rails控制台中运行
Sunspot.config
时,我看到:

   @properties={:url=>"http://127.0.0.1:8983/solr"}
然后我将开发/生产端口更改为8984/8985,Solr从新的开发端口(8984)开始,但是Rails控制台中的Sunspot.config仍然返回
http://127.0.0.1:8983/solr
(既不是8984也不是8985,这意味着它根本不读取sunspot.yml)

我是否错过了轨道上太阳黑子的初始化步骤

我正在使用以下版本:

  • ruby 1.9.3
  • 轨道(3.2.1)
  • 太阳黑子(1.3.0)
  • 太阳黑子轨道(1.3.0)
  • 太阳黑子(0.4.1)

您退出控制台,重新启动并检查了吗?

我在尝试从控制台使用sunspot_index_队列时遇到了类似的问题,结果证明sunspot没有从sunspot_rails(从您的sunspot.yml获取)获得所需的配置稍微修改一下environments.rb文件就可以了。这就是我在我的情况下必须做的事情(如果有人从谷歌找到这个页面,就发布它):


要在没有队列的情况下使用,本地线程代理应该自动从sunspot.yml恢复,因此您不必担心。如果您对Sunspot.yml文件中的任何内容感兴趣,请尝试
Sunspot::Configuration
Sunspot::Rails::Configuration
。(记得实例化!)

回答我自己的问题。事实上,我的问题是sunspot_mongoid,它作为gem安装时没有rails意识,我必须将它作为rails插件添加到thr rails项目中,然后它正确加载config/sunspot.yml

如何将这个gem作为插件添加?
<code>
SunspotConfig = Sunspot::Rails::Configuration.new
Sunspot.session = Sunspot::IndexQueue::SessionProxy.new(
  Sunspot::IndexQueue.new(
    :session => Sunspot::Session.new{|config| config.solr.url = "http://#{SunspotConfig.hostname}:#{SunspotConfig.port}/solr"}
  )
)
</code>