modelに日本語書くとエラーになるときの対策
環境
Rails 3.2.9
ruby 1.9.3p194
たとえばバリデーションのメッセージに日本語で書くとする。
class Machine < ActiveRecord::Base
validates_presence_of :rental_no, :message =>"ダメだよ"
attr_accessible :detail, :hikitori, :kaishu, :location_id, :machine_name_id, :motikomi, :rental_no, :shukko, :used
end
するともれなく「We're sorry, but something went wrong.」と表示されてしまう。
そんなときはmodelの冒頭に「# encoding: UTF-8」を書き加えてあげると解決する。
# encoding: UTF-8
class Machine < ActiveRecord::Base
validates_presence_of :rental_no, :message =>"ダメだよ"
attr_accessible :detail, :hikitori, :kaishu, :location_id, :machine_name_id, :motikomi, :rental_no, :shukko, :used
end
なんでmodelだけこんなんなんだろ?
参考:
Rails の models クラスに日本語を記述するとエラーになる: ある SE のつぶやき
あとRails全体でエラーメッセージ日本語化