JRubyでActiveRecord使ったりしてみたけど、普通のRubyでも使ってみた。
とりあえず、RubyをDLしてきてインストール。
gem install railsを実行して一通りインストール
gem postgres-prを実行してPostgreSQLにつなげるのに必要なものをゲット
実験に使ったテーブルは前に使ったものと同じ。
一応DDLをのせておく
create table departments ( id serial primary key, name varchar(50) ); create table employees ( id serial primary key, name varchar(50), department_id int, constraint fk_departments foreign key (department_id) references departments(id) );
んで、おもむろにコードを書く。
require 'rubygems' require 'active_record' ActiveRecord::Base.establish_connection( :adapter => 'postgresql', :host => 'localhost', :username => 'postgres', :password => 'postgres', :database => 'activerecord' ) class Employee < ActiveRecord::Base belongs_to :department end class Department < ActiveRecord::Base has_many :employees end jinji = Department.create(:name => '人事部') jinji.employees << Employee.create(:name => '麻呂')
実行してみると、DBにちゃんとデータが入ってた。
ちなみに、DBの文字コードとRubyのファイルの文字コードをあわせないと不幸なことがおこったので気をつけよう。
JRubyでもってActiveRecord-JDBCを使って作ったときは日本語が文字化けしてたけど本家ではおきなかった。
う〜んJRubyのほうのプログラムのファイルの文字コードとDBの文字コードの設定をつき合わせてみないといけないかな…