代码之家  ›  专栏  ›  技术社区  ›  Zabba fl00r

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

  •  1
  • Zabba fl00r  · 技术社区  · 14 年前

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

    但为了部署,我将使用Heroku。

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

    3 回复  |  直到 14 年前
        1
  •  1
  •   ofi    14 年前

    有趣的是:我在寻找另一种方式的工具链(在mri Ruby中开发,在jruby中部署)时遇到了您的问题。当然,您不能使用任何Java类和内部结构,但这无疑是显而易见的。根据我目前的结果,您不应该遇到任何流程结构问题,因为mri ruby坚持无共享原则,而开发应用程序中的请求至少共享VM。也许是舒尔,你应该看看 http://kenai.com/projects/jruby/pages/DifferencesBetweenMriAndJruby 并从相反的角度来阅读,尤其是当取消/包装字符串或数组时,“本机endian是big endian”段落。

        2
  •  2
  •   Mark Thomas    14 年前

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

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

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

        3
  •  1
  •   Bill Leeper    14 年前

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

    至于丢失已安装的gems等,在使用bundle时查看一下,这也会在gem版本不同步的情况下为您节省一些麻烦。