我正在运行标准的Digital Ocean Ubuntu 14.04 Droplet。
我用rails 4.2.0.beta4安装了我的rails应用程序,并通过RVM和使用名为r420的gemset安装了我的第一个软件包安装mri ruby 2.1.4。在对rails应用程序进行一些小修改之后,我安装了jruby 1.7.16.1并设置了一个名为j420的gemset,然后尝试运行bundle install。每次我尝试使用jruby运行bundle install时,bundler都会挂起,不会产生任何错误。我尝试通过添加行“ruby'1.9.3',:engine =>'jruby',:engine_version =>'1.7.16.1'”来定义geoku文件中heroku建议的ruby依赖项。这也挂了。
我在本网站的另一个条目中看到有人在早期版本的rails中建议可能会将源更改为':rubygems'。这只会导致出现错误消息,指出不存在此类域。
否则我的应用程序在MRI中工作正常,但我真的想让jRuby工作,如果可能的话。我当然有兴趣生产一个线程安全的rails应用程序。
答案 0 :(得分:1)
首先"轻微变化"可能不足以切换Rails(尤其是ActiveRecord)... C驱动程序使用JRuby不支持的MRI API,您需要设置JDBC适配器,使用" native" Java API,例如对于MySQL:
gem 'mysql2', platform: :mri
gem 'jdbc-mysql', platform: :jruby
gem 'activerecord-jdbc-adapter', platform: :jruby
注意:截至本答复时,AR-JDBC不支持Rails 4.2(他们做了很多内部AR重构,可能需要一段时间才能finish up)< / p>