- # Ruby入門 > Ruby on Rails
Rails2.0でデータベースの文字化け対策(InstantRails-2.0-win)
スポンサーリンク
スポンサーリンク
ライフスタイル関連のコンテンツ
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
お金 | 仕事 | 勉強 | プライベート | 健康 | 心
プログラミング関連のコンテンツ
C言語/C++入門 | Ruby入門 | Python入門 | プログラミング全般
さて先日より、NetBeans6.1+InstantRails-2.0-winで、Windowsに環境を作りRuby on Railsの勉強をはじめました。
InstantRails-2.0-winには、データベースとしてMySQL-5.0.27、RailsのバージョンはRails-2.0.2が入っています。
スポンサーリンク
MySQL5以降では、SQLを発行してデータベースやテーブルを作る際に、文字コードを指定したほうが良いみたい。
そうしないと、フォームからPOSTしてデータベースにデータをInsertすると、文字化けが起こりやすいです。
RailsアプリのDBマイグレーション用のファイルは以下の場所にあります。
db/migrate/001_create_hoges
デフォルトのDBマイグレーション用のファイルを利用したところ、データベースにPOSTしたところで案の定、文字化けが起こり「???????」となってしまいました。
「db/migrate/001_create_hoges」を以下のように書き換えます。
文字コードはUTF-8で統一。
db/migrate/001_create_hoges (文字コード指定・UTF-8)
class CreateHoges < ActiveRecord::Migration def self.up options = { :force => true, :options => "ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;" } create_table(:hoges, options) do |t| # 省略 end end def self.down # 省略 end end
太字の部分が追加した箇所。
さらに、「config/database.yml」も確認して・・・
config/database.yml
development: adapter: mysql encoding: utf8 database: hogehoge_development username: hoge password: hoge host: localhost
と、「encoding: utf8」と指定されているように確認する。
このようにして、DBをもう一回マイグレーションしてやると、フォームからPOSTしても文字化けしないで済みます。
スポンサーリンク
>> 次の記事 : NetBeansでのRoR開発手順
<< 前の記事 : Ruby on Rails ことはじめ
- - 関連記事 -
- scaffoldで生成されるviewテンプレート(templates)を日本語表示に変更する
- マイグレーション(rake db:migrate)の確認・Railsカラム生成メソッドとMySQLデータ型の対応表
- Ruby on RailsのSQL文をdevelopment.logで確認
- Ruby on Railsのデータベースとモデルクラス・MVCの対応関係
- environment.rbを変更したらサーバー再起動
- NetBeansでのRoR開発手順
- Ruby on Rails ことはじめ
スポンサーリンク