rake db:seed – umgehen mit Umlaute

Wir entwicklen gerade eine Applikation mit Ruby on Rails.

Beim Daten Import via rake db:seed gab es ein Problem.

Die Datei seeds.rb beinhaltet Strings die Umlaute haben, wie z.B.

{ :category => 'Sport/Körperpflege/Wellness' }

Bei der Ausführung von rake db:seed wurde folgende Fehler ersichtlich

$ rake db:seed
rake aborted!
/app/db/seeds.rb:19: invalid multibyte char (US-ASCII)
/app/db/seeds.rb:19: invalid multibyte char (US-ASCII)
/app/db/seeds.rb:19: syntax error, unexpected $end, expecting '}'
{ :category => 'Sport/Körperpflege/Wellness' }
^
Tasks: TOP => db:seed
(See full trace by running task with --trace)

Dieses Problem kann gelöst werden in dem die seeds.rb Datei als Erste Zeile folgendes beinhaltet

# encoding: utf-8

Mit dieser Änderung können auch „multibyte“ Zeichen importiert werden.

Quelle: Rails 3.1, Ruby 1.9.2-p180 and UTF-8 issues