かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

普通に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の文字コードの設定をつき合わせてみないといけないかな…