【问题标题】:Developing a Rails app in Netbeans/JRuby but deploying to Ruby (C)在 Netbeans/JRuby 中开发 Rails 应用程序但部署到 Ruby (C)
【发布时间】:2010-10-17 17:11:31
【问题描述】:

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

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

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

【问题讨论】:

  • 为什么不在本地安装 MRI 并使用它来代替 JRuby 进行开发?

标签: ruby-on-rails ruby deployment jruby


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您在与部署相同的平台上进行开发,您将为自己省去很多麻烦。这也适用于操作系统,尤其是 Windows,然后部署在 Linux 上,对于 OSX 则更少,但有时仍然是一个问题。您将在部署系统上进行故障排除,这与在开发中编写代码时捕获某些内容不同。我最近开始在一个项目中使用 JRuby,在某些情况下有很多不同之处和完全不同的 gem。

      至于丢失已安装的 gem 等,请在使用 Bundle 时看看它,这也将为您省去一些麻烦,因为 gem 版本不同步。

      【讨论】:

        猜你喜欢
        • 2011-03-18
        • 1970-01-01
        • 2011-12-09
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-09-15
        • 1970-01-01
        相关资源
        最近更新 更多