Fixtures を使用した sqlite3 データベースのシードは、config1 では機能しましたが、config2 の utf-8 サポートでは失敗します。
config1: Ubuntu 11.04、ruby 1.9.2p136、Rails 3.0.3、「開発」環境
config2: OS X Lion、ruby 1.9.2p290、Rails 3.0.3、「開発」環境
次のようなymlファイルがある場合
001:
id: 1
name: "\xC3\xBC"
それを使用してデータベースにデータを入力します
Fixtures.create_fixtures(...)
シード.rbで
その後、データベースには、ID 1 と名前「ü」のエントリが表示されます。それは正しいでしょう。それはconfig1でうまくいきました。config2 では、常に "ü" という名前のエントリがあります。utf-8 エンコーディングが失敗するようです。
RailsプロジェクトのどこでもすでにUTF-8をオンにしています:
encoding: utf-8
database.yml で
# encoding: utf-8
シード.rbで
Encoding.default_external = "UTF-8"
Encoding.default_internal = "UTF-8"
config.encoding = "utf-8"
config/environments/development.rb 内