日本語表示の半角スペースが取り除けなくてハマったのでメモ
customer.errors.full_messages
=> ["顧客名 を入力してください。"]
スペースが入る(´・ω・`)
サンプルコード
customer.rb
class Customer < ActiveRecord::Base
validates :name, presence: true
end
customer_spec.rb
it "未入力の場合、エラーメッセージが日本語で表示できること" do
customer = Customer.new
customer.name = ''
customer.valid?
expect(customer.errors.full_messages).to include('顧客名を入力してください。')
end
ja.yml
ja:
errors:
format: "%{attribute}%{message}"
messages:
blank: を入力してください。
attributes:
customer:
name: 顧客名
注意点
デフォルトは、attributeとmessageの間に半角スペースが入るためformatでスペースを取り除く。この指定がないと顧客名 を入力してください。
となりテストが通らない
デフォルトフォーマット
format: "%{attribute} %{message}"
修正後
format: "%{attribute}%{message}"
巷の情報では、activerecordの中にformat指定してたが、これだとうまく変換されなかったため、ルートにformatを書いたら変換できた。