9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails4 i18nの日本語フォーマットの半角スペースを取り除く

Last updated at Posted at 2015-03-24

日本語表示の半角スペースが取り除けなくてハマったのでメモ

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を書いたら変換できた。

9
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?