2014-11-16 3 views
0

Я бегу по стандартной капельке Digital Ocean Ubuntu 14.04.Комплект поставки висит в Jruby с рельсами 4.2

Я установил приложение для рельсов с рельсами 4.2.0.beta4 и выполнил мой первый пакет с помощью mri ruby ​​2.1.4, установленного через RVM, и используя gemset, который я назвал r420. Сделав некоторые незначительные изменения в приложении rails, я установил jruby 1.7.16.1 и установил gemset с именем j420, а затем попытался запустить установку пакета. Каждый раз, когда я пытаюсь запустить установку пакета с помощью jruby, зависает пакет, не создавая ошибки. Я попытался определить рубиновую зависимость, как рекомендовал heroku в Gemfile, добавив строку «ruby» 1.9.3 ',: engine =>' jruby ',: engine_version =>' 1.7.16.1 '". Это также висит.

Я видел в другой записи на этом сайте, что кто-то предложил в более ранней версии рельсов изменить исходный код на: rubygems. Это привело только к сообщению об ошибке, в котором говорилось, что такой домен отсутствует.

В противном случае мое приложение отлично работает на МРТ, но я действительно хочу, чтобы jRuby работал, если это возможно. Конечно, я заинтересован в создании поточного безопасного рельса.

ответ

1

В первую очередь, «незначительные изменения» могут быть недостаточными для переключения Rails (особенно ActiveRecord) ... драйверы C используют API-интерфейс MRI, который не поддерживается в JRuby, вам необходимо настроить адаптер JDBC, который делает то же самое с использованием «родных» Java-API, например для MySQL:

gem 'mysql2', platform: :mri 
gem 'jdbc-mysql', platform: :jruby 
gem 'activerecord-jdbc-adapter', platform: :jruby 

ПРИМЕЧАНИЕ: на момент этого ответа Rails 4.2 не поддерживается AR-JDBC (они сделали много внутренних реорганизаций AR, что может занять некоторое время, чтобы finish up)

+0

Спасибо! Я не знал, что это проблема. –