Разработка приложения на Rails для Netbeans / JRuby, но развертывание на Ruby (C) - PullRequest
1 голос
/ 17 октября 2010

Я использую Netbeans и JRuby для разработки веб-приложения на Rails.

Но для развертывания я буду использовать Heroku.

Поскольку Heroku использует реализацию Ruby-C, я былинтересно, мое использование JRuby может вызвать проблемы?Этот подход безопасен?

Ответы [ 3 ]

2 голосов
/ 17 октября 2010

Вы можете разрабатывать в NetBeans и использовать C-Ruby (он же MRI Ruby). Просто установите Ruby отдельно, перейдите на Ruby Platforms и выберите его. Я настоятельно рекомендую вам в любом случае установить отдельный Ruby, независимо от того, является ли он MRI Ruby, потому что если вы используете встроенную версию JRuby для NetBeans (которая часто не самая последняя), а затем обновляете NetBeans, вы потеряете все гемы Вы установили. Установка Ruby / JRuby вне NetBeans поможет вам лучше управлять версиями и гемами.

Теперь, чтобы ответить на ваши вопросы: скорее всего, у вас не возникнет проблем с базовыми приложениями на Rails. Если вам когда-нибудь понадобится использовать не родные библиотеки, у вас могут возникнуть проблемы. Некоторые драгоценные камни (например, Nokogiri) имеют C-версию и Java-версию, так что с вами все будет в порядке, но если вы хотите использовать плагин, основанный, например, на RMagick, вы будете бороться, так как вы, вероятно, пойдете другим путем. маршрут, если вы разрабатывали и развертывали с JRuby.

Итог: я бы не рекомендовал это. Я бы порекомендовал использовать одну и ту же платформу для обоих. Но вы можете использовать MRI Ruby в NetBeans.

1 голос
/ 18 октября 2010

Вы избавите себя от множества неприятностей, если будете разрабатывать на той же платформе, что и развертывание.Это касается и ОС, особенно Windows и развертывания в Linux, в меньшей степени с OSX, но все же иногда является проблемой.Вы будете устранять неполадки в вашей системе развертывания, и это не то же самое, что поймать что-то, когда вы кодируете это в процессе разработки.Недавно я начал использовать JRuby для проекта, и в некоторых случаях есть довольно много различий и совсем других драгоценных камней.

Что касается потери установленных драгоценных камней и т. Д., Посмотрите на использование Bundle, пока вы на нем.также избавит вас от хлопот, связанных с версиями гемов из синхронизации.

1 голос
/ 17 октября 2010

забавная вещь: я наткнулся на ваш вопрос, когда искал цепочку инструментов, чтобы сделать это наоборот (разработка в MRI Ruby, развертывание с JRuby). Конечно, вы не можете использовать какие-либо классы Java и внутренние компоненты, но это наверняка для вас очевидно. Согласно моим результатам, пока вы не должны сталкиваться с какими-либо структурными проблемами процесса, потому что MRI Ruby придерживается принципа «ничего не делится», тогда как ваши запросы в приложении для разработки разделяют виртуальную машину как минимум. Может быть, чтобы быть уверенным, вы должны взглянуть на http://kenai.com/projects/jruby/pages/DifferencesBetweenMriAndJruby и прочитать его в обратном смысле, особенно параграф «Native Endian is Big Endian» при распаковке / упаковке строк или массивов.

...