22085


現在の出力画面

> 入力内容にエラーがあります  
>  emailを入力してください  
>  messageを入力してください

このように、他の日本語化には、成功したのですが、attributesの日本語化だけうまくいかず、困っています。何かアドバイスを頂けたら嬉しいです。

ja.yml

[code]

    ja:
      activerecord:
        models:
          contact: お問い合わせ
        attributes:
          contact:
            name: 名前
            email: メールアドレス
            message: お問い合わせ内容
    
[/code]

※contactモデル,データベースともに存在しています。

contacts/new.html.erb

[code]

    <%= form_for(@contact) do |f| %>
      <% if @contact.errors.any? %>
        <strong>入力内容にエラーがあります</strong>
        <ul>
          <% @contact.errors.each do |attr, msg| %>
            <li><%= attr %><%= msg %></li>
          <% end %>
        </ul>
      <% end %>
    <% end %>
    
[/code]

※一部省略

application.rbに `config.i18n.default_locale = :ja` を設定済み


CC BY-SA 3.0
2016-02-14T23:46:13.807
22083
2016-02-15T02:58:30.537
2016-02-15T02:29:06.093
14085
14085
question
ruby-on-rails i18n
rails で日本語化をしているのですが、attributesの日本語化が適用されません


キーが抜けてますね。以下のように足してみるとよいと思います。

[code]

    ja:
      activerecord:
        models:
          contact: お問い合わせ
        attributes:
          contact:
            name: 名前
            email: メールアドレス
            message: お問い合わせ内容
    
[/code]

参考  
[Rails国際化(I18n) API | Rails ガイド](http://railsguides.jp/i18n.html#active-
record%E3%83%A2%E3%83%87%E3%83%AB%E3%81%A7%E7%BF%BB%E8%A8%B3%E3%82%92%E8%A1%8C%E3%81%AA%E3%81%86)

## 追記

キーは足りていたということで、`full_messagesメソッド`を使うとよいと思います。

[code]

    <%= form_for(@contact) do |f| %>
      <% if @contact.errors.any? %>
        <strong>入力内容にエラーがあります</strong>
        <ul>
          <% @contact.errors.full_messages.each do |msg| %>
            <li><%= msg %></li>
          <% end %>
        </ul>
      <% end %>
    <% end %>
    
[/code]


CC BY-SA 3.0
2016-02-15T00:22:25.797
22085
2016-02-15T02:58:30.537
2016-02-15T02:58:30.537
9008
9008
22083
answer