プロが教えるわが家の防犯対策術!

config\locales\translation_ja.ymlファイルを下記のように編集して、

ja:
activerecord:
models:
demandapp: "要望" #g

attributes:
demandapp:
acquisition: "補足" #g
class1: "大分類" #g
class2: "分類" #g
content: "内容" #g
derivery: "納期" #g
report_count: "件数 #g"
source: "提起" #g
state: "状態" #g

これをviewのindexから下記のように、I18n.tメソッドを使って日本語訳を呼び出そうとすると、

<% Demandapp.column_names.each do |col| %>
<th>
<%= t("activerecord.attributes.demandapp.#{col}") %> # <ーここ
</th>
<% end %>

I18n::InvalidLocaleData in Demandapps#index
can not load translations from c:/user/Ruby193/rails/demand/config/locales/translation_ja.yml, expected it to return a hash, but does not

#の所でエラーが出て理由が分かりかねています。
ご経験のある方、御教示願えればと思います。

A 回答 (1件)

translation_ja.ymlの記述に問題があります。


ymlはインデントが命です。インデントは半角の空白のみ使用可能です。
タブ、全角空白を、使用すると正しく動作しません。以下のように記述してください。
---------------------------------------
ja:
  activerecord:
    models:
      demandapp: "要望" #g

    attributes:
      demandapp:
        acquisition: "補足" #g
        class1: "大分類" #g
        class2: "分類" #g
        content: "内容" #g
        derivery: "納期" #g
        report_count: "件数"  #g
        source: "提起" #g
        state: "状態" #g
----------------------------------------
尚、このgooのサイトは半角のインデントは使えないので、全角で投稿しています。
あなたが、この記述をするときは、必ず半角の空白で記述してください。
又、
report_count: "件数 #g" ですが
これは
report_count: "件数" #g
の誤りと理解しました。
参考までに
index.html.erbの内容と実行結果です。
------------------------
<h1>Listing demandapps</h1>

<table>
<tr>
<th>Acquisition</th>
<th>Class1</th>
<th>Class2</th>
<th>Content</th>
<th>Derivery</th>
<th>Derivery</th>
<th>Report count</th>
<th>Source</th>
<th>State</th>
<th></th>
<th></th>
<th></th>
</tr>

<% @demandapps.each do |demandapp| %>
<tr>
<td><%= demandapp.acquisition %></td>
<td><%= demandapp.class1 %></td>
<td><%= demandapp.class2 %></td>
<td><%= demandapp.content %></td>
<td><%= demandapp.derivery %></td>
<td><%= demandapp.derivery %></td>
<td><%= demandapp.report_count %></td>
<td><%= demandapp.source %></td>
<td><%= demandapp.state %></td>
<td><%= link_to 'Show', demandapp %></td>
<td><%= link_to 'Edit', edit_demandapp_path(demandapp) %></td>
<td><%= link_to 'Destroy', demandapp, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>

<br />

<% Demandapp.column_names.each do |col| %>
<th>
<%= t("activerecord.attributes.demandapp.#{col}") %>
<%#= Demandapp.human_attribute_name("#{col}") %>
</th>
<% end %>

<br />

<%= link_to 'New Demandapp', new_demandapp_path %>
------------------------
「Rails3でのYAMLファイルのtメソ」の回答画像1
    • good
    • 0
この回答へのお礼

これは、一か所追加した記述の所で、TABキーを使っているのが原因でした。
情報、ありがとうございました。

お礼日時:2013/01/19 20:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!