我正在使用Netbeans和JRuby開發Rails Web應用程序。在Netbeans/JRuby中開發Rails應用程序,但部署到Ruby(C)
但是爲了部署,我將使用Heroku。
由於Heroku使用Ruby-C實現,我想知道我使用JRuby會導致問題嗎?這種方法是否安全?
我正在使用Netbeans和JRuby開發Rails Web應用程序。在Netbeans/JRuby中開發Rails應用程序,但部署到Ruby(C)
但是爲了部署,我將使用Heroku。
由於Heroku使用Ruby-C實現,我想知道我使用JRuby會導致問題嗎?這種方法是否安全?
有趣的事情:我偶然發現了你的問題,同時尋找一個工具鏈來做相反的事情(在Ruby Ruby中開發,使用JRuby進行部署)。當然,你不能使用任何Java類和內部,但這肯定是顯而易見的。根據我迄今爲止的結果,您不應該遇到任何進程結構問題,因爲MRI Ruby堅持無共享原則,而您的開發應用程序中的請求至少與VM共享。也許要確保你應該看看http://kenai.com/projects/jruby/pages/DifferencesBetweenMriAndJruby並讀取它的相反意義,尤其是在「解壓字符串或數組」時,「Native Endian是Big Endian」段落。
您可以在NetBeans中開發並使用C-Ruby(也稱爲Ruby Ruby)。只需單獨安裝Ruby,進入Ruby平臺並選擇它。我強烈建議你安裝一個單獨的Ruby,無論它是否爲MRI Ruby,因爲如果你使用內置的NetBeans版本的JRuby(通常不是最新版本),然後升級NetBeans,那麼你將失去所有的寶石你已經安裝了。在NetBeans外部安裝Ruby/JRuby可幫助您更好地管理版本和寶石。
現在回答你的問題:可能你不會遇到基本的Rails應用程序的問題。如果您曾經需要使用非本地庫,則可能會遇到問題。有些寶石(例如Nokogiri)有C版本和Java版本,所以你會沒事的,但是如果你想使用一個依賴於RMagick的插件,你會很困難,因爲你可能會變得不同如果您正在使用JRuby進行開發和部署,則需要路由。
底線:我不會推薦它。我建議兩者都使用相同的平臺。但是你可以在NetBeans中使用MRI Ruby。
如果您在部署的同一平臺上開發,您將節省很多麻煩。這也適用於操作系統,尤其是Windows在Linux上的部署,而OSX則不如此,但仍然是一個問題。您將在您的部署系統上進行故障診斷,這與您在開發中編寫代碼時捕獲的內容並不相同。我最近開始使用JRuby進行一個項目,在某些情況下,有不少差異和不同的寶石。
至於鬆動已安裝的寶石等,看看在你使用Bundle的同時,這也可以幫助你省下一些麻煩,使寶石版本不同步。
爲什麼不在本地安裝MRI並使用它代替JRuby進行開發? – 2010-10-17 18:14:43