かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

普通にActiveRecordしてみた

JRubyActiveRecord使ったりしてみたけど、普通の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の文字コードの設定をつき合わせてみないといけないかな…