他のトコでDBとアプリで扱う文字コードが違ってたおかげで化けてた問題で、DBの方は設定したけど、アプリの方の設定もちゃんとしないとなぁ、と言うことで、載ってた!
PJ_HOME\config\environment.rb
↑
各プロジェクトのルート。
これの先頭に以下追加。
$KCODE = 'u'
uがUTF8らしい。
…じゃSJISとかなんなんだろう。。
PJ_HOME\app\controllers\application.rb
のクラス内に以下追加。
class ApplicationController < ActionController::Base
before_filter :set_charset
protected
def set_charset
#コンテントタイプ指定
@headers["Content-Type"] = "text/html; charset=utf-8"
#DB接続時に文字コードをUTF-8に設定するSQLクエリ発行
suppress([[ActiveRecord]]::StatmentInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
end
end
スペルミスってたらすいません。。
これはフィルタ使って、各メソッド呼び出される前に文字コード指定してあげているだけ。
before_filterで処理前フィルタが出来るんだと。
で、各Viewのhedderタグにmetaタグで指定してあげればおしまい。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
もちろん、コード書いてあるファイル自体もちゃんと文字コードあわせないと駄目。
化けないように、ちゃんとします。。。
最終更新:2009年01月21日 11:46