有了號稱可以跑 Rails 的 JRuby ,當然要來試試看 JRuby on Rails 怎麼安裝。因為我的 test 機器上面已經有裝好原先的 Ruby 跟 Rails ,所以我們就每個指令都打全部的執行檔路徑避免搞混。本 Tutorial 在 Linux 上面測試成功。
安裝 Rails
JRuby 有附帶一個 gems 在 $JRuby_PATH/bin/ 底下。我們使用我們最熟悉的方式來裝,就是 gem 安裝
安裝 MySQL JDBC Driver
因為 JRuby 不能裝我們熟悉的 ruby-mysql,所以使用 JDBC 來操作 MySQL。你可以到任何地方去安裝 MySQL JDBC Driver 的 jar 檔案,但是如果不知道那裡抓的話,可以試試看 MySQL 官方的 Connector/J 。然後 mysql-connector-java.jar 檔案放到 $JRuby_HOME/lib/ 底下。(註1)
安裝 ActiveRecord-JDBC
這是 Active Record 跟 JDBC 的介面,用 gem 來安裝
新增 Rails APP
熟悉的指令來了,只是請確定你是使用 JRuby 的 rails 來新增 Rails App
rails 的 config/enviroment.rb 要稍微修改
Database config 修改
因為改成 JDBC 了,所以 config/database.yml 也會改成
啟動 Rails Server
終於要啟動了,啟動方式就是
註1
我試過 $CLASSPATH 的方式,但是無法還是無法正確 connection ,會出現以下 error
註2
當沒有寫入 config/enviroment.rb ,啟動時會出現下列 error
安裝 Rails
JRuby 有附帶一個 gems 在 $JRuby_PATH/bin/ 底下。我們使用我們最熟悉的方式來裝,就是 gem 安裝
$JRuby_PATH/bin/gem i rails -y他會安裝 Rails package 到 $JRuby_PATH/lib/ruby/gems/1.8/gems/ 底下。以後所有的 JRuby Gems 都會安裝到這個下面。安裝好了後,$JRuby_PATH/bin/ 會多出 rails 這個指令,這個就是我們熟悉的 rails command。
安裝 MySQL JDBC Driver
因為 JRuby 不能裝我們熟悉的 ruby-mysql,所以使用 JDBC 來操作 MySQL。你可以到任何地方去安裝 MySQL JDBC Driver 的 jar 檔案,但是如果不知道那裡抓的話,可以試試看 MySQL 官方的 Connector/J 。然後 mysql-connector-java.jar 檔案放到 $JRuby_HOME/lib/ 底下。(註1)
安裝 ActiveRecord-JDBC
這是 Active Record 跟 JDBC 的介面,用 gem 來安裝
$JRuby_PATH/bin/gem i ActiveRecord-JDBC安裝好了之後就可以使用 JDBC 來 Connection MySQL。
新增 Rails APP
熟悉的指令來了,只是請確定你是使用 JRuby 的 rails 來新增 Rails App
$JRuby_HOME/bin/rails app_name修改 Enviroment config
rails 的 config/enviroment.rb 要稍微修改
Rails::Initializer.run do |config|裡面要加上
end
RAILS_CONNECTION_ADAPTERS = 'jdbc'這句,不然會出現 error。(註2)
Database config 修改
因為改成 JDBC 了,所以 config/database.yml 也會改成
development:這個樣子的設定方式,原先的 database 選項是無效的,必須放在 url 選項的最後面才可以使用。
__adapter: jdbc
__driver: com.mysql.jdbc.Driver
__url: jdbc:mysql://localhost:3306/資料庫名稱
__username: root
__password:
啟動 Rails Server
終於要啟動了,啟動方式就是
jruby script/server他會啟動 webrick 。
註1
我試過 $CLASSPATH 的方式,但是無法還是無法正確 connection ,會出現以下 error
The driver encountered an error: cannot load Java class com.mysql.jdbc.Driver所以我採用這個方式。
註2
當沒有寫入 config/enviroment.rb ,啟動時會出現下列 error
> jruby script/server
=> Booting WEBrick...
/home/wisely/jruby-1.0/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/abstract/connection_specification.rb:209:in `establish_connection': database configuration specifies nonexistent jdbc adapter (ActiveRecord::AdapterNotFound)