JRuby on Rails 注意事項

改叫 JRoR 嗎?還是 JoR 呢? :p

當下載 JRuby 回來使用時,裡面就已經搭載好了 JRuby 版本的 Ruby Gems,同時也就可以直接

# gem install --no-rdoc --no-ri rails

來安裝 Rails 使用,但是,原本在傳統 Ruby on Rails 中最常使用的 ruby-mysql API 在 JRuby 中是無法安裝的,因為 JRuby 沒有 mkmf 所以無法 build 這個 API,所以必須利用 ActiveRecord-JDBC 來利用 JDBC 連接到像 MySQL 這樣的資料庫,安裝的方法也很簡單:

# gem install --no-rdoc --no-ri ActiveRecord-JDBC

然後,當你用 rails 產生 Rails application 後,要在 $APP/config/environment.rb 中的 Rails::Initializer.run do |config| 之前加上:


if RUBY_PLATFORM =~ /java/
require 'rubygems'
RAILS_CONNECTION_ADAPTERS = %w(jdbc)
end

當然,$APP/config/database.yml 也要作一些修改,像是這樣:


development:
adapter: jdbc
driver: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/foo_development
username: foo
password: bar

最後,別忘了要設定你的 $CLASSPATH 環境變數,讓它指到 jdbc mysql driver 的檔案。

如此一來,便能夠 JRuby on Rails 了!

  • 叫作JRoR好了.. JoR的話就跟我之前寫的RoR Judge系統(JudgeOnRails)同名了XD

    不過我想問問,如何把現有的Rails Project移到JRuby去跑呢? 想試試看@@

  • 傑洛:
    $APPHOME/public/dispatch.* 裡的 #/usr/bin/env ruby 改成 #!/usr/bin/env jruby 就好了 😛

    (當然,你的 $PATH 要能找到 jruby :P)

  • oops.. 原來這麼簡單阿:P

    謝謝:)

  • Pingback: ericsk’s blog » JRuby on Rails: Java Application Server Deployment()