在Netbeans / JRuby中开发Rails应用程序,但部署到Ruby(C)

时间:2010-10-17 17:11:32

标签: ruby-on-rails ruby deployment jruby

我正在使用Netbeans和JRuby开发Rails Web应用程序。

但是对于部署,我将使用Heroku。

由于Heroku使用Ruby-C实现,我想知道我使用JRuby会导致问题吗?这种做法是安全的吗?

3 个答案:

答案 0 :(得分:2)

您可以在NetBeans中开发并使用C-Ruby(也称为MRI Ruby)。只需单独安装Ruby,转到Ruby平台,然后选择它。我强烈建议您无论如何都安装一个单独的Ruby,无论它是否是MRI Ruby,因为如果您使用内置的NetBub版本的JRuby(通常不是最新版本)然后升级NetBeans,您将丢失所有宝石你安装好了。在NetBeans之外安装Ruby / JRuby可以帮助您更好地管理版本和宝石。

现在回答您的问题:您可能不会遇到基本Rails应用程序的问题。如果您需要使用非本机库,则可能会遇到问题。一些宝石(例如Nokogiri)有一个C版本和一个Java版本,所以你可以,但是如果你想使用一个依赖于RMagick的插件,你会很挣扎,因为你可能会有所不同如果您正在使用JRuby进行开发和部署,请使用此路由。

底线:我不推荐它。我建议两者都使用相同的平台。但是你可以在NetBeans中使用MRI Ruby。

答案 1 :(得分:1)

有趣的是:我在寻找工具链时偶然发现了你的问题(在MRI Ruby中开发,使用JRuby进行部署)。当然,你不能使用任何Java类和内部,但这肯定是显而易见的。根据我迄今为止的结果,您不应该遇到任何流程结构问题,因为MRI Ruby遵循无共享原则,而您在开发应用程序中的请求至少共享VM。也许是为了避免你应该看看http://kenai.com/projects/jruby/pages/DifferencesBetweenMriAndJruby并以相反的方式阅读它,尤其是当取消/打包字符串或数组时,“Native Endian是Big Endian”段落。

答案 2 :(得分:1)

如果您在部署的同一平台上进行开发,那么您将省去很多麻烦。这也适用于操作系统,特别是Windows然后在Linux上部署,对于OSX来说则更少,但有时仍然存在问题。您将在部署系统上进行故障排除,这与在开发中对其进行编码时捕获的内容不同。我最近开始使用JRuby进行一个项目,在某些情况下,有很多差异和不同的宝石。

至于丢失已安装的宝石等,请在使用Bundle时查看它,这样可以省去一些麻烦,因为宝石版本不同步。