Ошибка sunspot_solr на героку?

Я использую 'sunspot_rails', '~> 2.0.0.pre.120415' для поиска Solr в своем приложении rails и развертываю его на героку (два отдельных приложения). В одном приложении работает нормально, в другом выдает ошибку.

Я проверил среду heroku и обнаружил, что одно приложение находится в кедровом стеке, а рубиновая версия — 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)

person Lucky    schedule 19.12.2012    source источник
comment
Не хватает информации. Как насчет того, чтобы показать нам ошибку?   -  person Unixmonkey    schedule 19.12.2012


Ответы (2)


Чтобы было еще понятнее, в верхней части файла adapters.rb (sunspot/lib/sunspot/adapters.rb) добавьте следующую строку:

 require 'forwardable'


 module Sunspot
   #
   # Sunspot works by saving references to the primary key (or natural ID) of
person Joshua Robinson    schedule 23.03.2013

Я нашел решение.

На самом деле это проблема среды на героку. В локальной системе рубиновая версия — 1.9.2p290, а на героку — рубиновая 1.9.2p180. Ruby 1.9.2p180 не включает модуль Forwardable. Поэтому мне просто нужно включить модуль Forwardable в мое приложение.

person Lucky    schedule 14.01.2013
comment
не могли бы вы сказать нам, где именно вы включили, какой именно модуль. Спасибо - person Viktor Trón; 15.01.2013
comment
В application.rb я добавляю это требование «пересылаемый» - person Lucky; 16.01.2013