Ruby On Rails + Oracle で日本語入力

ちょいと気が向いて、
Rails + Oracleをやってみような話。

プラットフォームはWindows
Oracle10gR2

基本は、US Oracle参考に後はSJIS使ったときの文字化け対策

http://www.oracle.com/technology/pub/articles/haefel-oracle-ruby.html

うまくいったの(書き込み、読み込み共に日本語うまく通った)
ので、忘れる前にメモ

rails 1.2.6前提(gem install rails --version 1.2.6)


ruby-ociは入ってること前提

上記URLのとおり、SQLPLUSでログイン

CREATE TABLE comics (
id NUMBER(10) NOT NULL,
title VARCHAR2(60),
issue NUMBER(4),
publisher VARCHAR2(60),
PRIMARY KEY (id)
);
CREATE SEQUENCE comics_seq;


ログアウトしたら、
コマンドプロンプト
rails comics_catalog -d oracle

cd comics_catalogして
config/database.ymlを編集

adapterはoracleになってるので、そのまんま
databaseはTNSNAMES.oraにあるサービス(SID)名

で、scaffold
ruby script/generate scaffold Comic

あとは、文字化け対策

config/environment.rb
先頭に $KCODE = 's'

app/controllers/application.rb 以下追記

before_filter :set_charset


def set_charset
headers["Content-Type"] = "text/html; charset=Shift_JIS"
end


これでとりあえず、日本語を入れても文字化けされずに表示されるように。