2012-12-19 42 views
0

我在我的rails应用程序中使用'sunspot_rails', '~> 2.0.0.pre.120415'进行Solr搜索,并将其部署到heroku(两个单独的应用程序)。 它在一个应用程序上正常工作,但在其他应用程序上抛出错误。heroku上的sunspot_solr错误?

我检查了heroku环境,发现 - 一个应用程序在雪松堆栈上,ruby版本是1.9.2p290。 (工作正常) 另一个是在竹栈和红宝石版本是1.9.2p180(抛出错误)

那么,这是ruby版本问题还是heroku堆栈问题? 开发环境的Ruby版本是1.9.2p290。

错误

$ heroku run rake sunspot:reindex 
Running rake sunspot:reindex attached to terminal... up, run.8567 
rake aborted! 
uninitialized constant Sunspot::Adapters::Registry::Forwardable 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot/adapters.rb:310:in `<class:Registry>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot/adapters.rb:309:in `<module:Adapters>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot/adapters.rb:34:in `<module:Sunspot>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot/adapters.rb:1:in `<top (required)>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot.rb:18:in `block in <top (required)>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot.rb:15:in `each' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot-2.0.0.pre.120925/lib/sunspot.rb:15:in `<top (required)>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot_rails-2.0.0.pre.120925/lib/sunspot/rails.rb:1:in `<top (required)>' 
/app/.bundle/gems/ruby/1.9.1/gems/sunspot_rails-2.0.0.pre.120925/lib/sunspot_rails.rb:6:in `<top (required)>' 
/app/config/application.rb:7:in `<top (required)>' 
/app/Rakefile:4:in `require' 
/app/Rakefile:4:in `<top (required)>' 
(See full trace by running task with --trace) 
+1

没有足够的信息。如何向我们展示错误? – Unixmonkey

+0

嗨,检查错误。 – Lucky

回答

0

为了更加清楚,在adapters.rb(太阳黑子/ LIB /太阳黑子/ adapters.rb)的顶部,添加下列行:

require 'forwardable' 


module Sunspot 
    # 
    # Sunspot works by saving references to the primary key (or natural ID) of 
0

我已经找到了解决办法。

其实这是一个在heroku上的环境问题。在本地系统上的ruby版本是红宝石1.9.2p290和在heroku上是红宝石1.9.2p180。 Ruby 1.9.2p180不包含'可转向'模块。所以我只需要在我的应用程序中包含“可转换”模块。

+0

你能告诉我们你到底在哪里准确地包含了什么模块。 Thx –

+1

在application.rb中,我添加了这个require'forwardable' – Lucky