YAMLファイルが便利なので魔改造した
YAMLファイルが便利なので魔改造していたらこんなのが出てきた
Nested I18n namespace lookup under "activerecord.attributes.patrol" is no longer supported
通常状態
ja: activerecord: attributes: patrol: id: 'ID'
魔改造1
ja: activerecord: attributes: patrol: id: title: 'ID' note: '通し番号です'
Tooltipを使ってtitleにマウスオーバーしたらnoteが表示されるようにして書き込んでいた。Railsを再起動したら青ざめることになった。
[DEPRECATION WARNING] Nested I18n namespace lookup under "activerecord.attributes.patrol" is no longer supported
[http://dev.mensfeld.pl/2011/08/rails-3-1-deprecation-warning-nested-i18n-namespace-lookup-is-no-longer-supported/:title=Rails 3.1 [DEPRECATION WARNING] Nested I18n namespace lookup is no longer supported]を参考にしてみる
魔改造2
ja: activerecord: attributes: patrol: "id/title": 'ID' "id/note": '通し番号です'
viewsのhtml.erbではこんな感じで呼び出せる
<%= t("activerecord.attributes.patrol.id/title") %><%= t("activerecord.attributes.patrol.id/note") %>
だらだらと記述して感じるのは「入力が増えて、読みづらくて汚いなー」
修正してみる
魔改造3
ja: activerecord: attributes: patrol: id: 'ID' notes: patrol: id: '通し番号です'
viewsのhtml.erbではこんな感じで呼び出せる
<%= t("activerecord.attributes.patrol.id") %><%= t("activerecord.notes.patrol.id") %>
YAMLをフォームでタイトルと説明文を記述するときに使う方法
フォームに入力してもらうときに、口頭や文章で説明するのが面倒なので勝手に理解してもらうためにツールチップで表現したい。
先ほどのyamlをもうちょっと入力する。
ja: activerecord: attributes: patrol: id: 'ID' staff_id: 'スタッフ' place: '場所' notes: patrol: id: '通し番号です' staff_id: '確認したスタッフを選択してください' place: '問題があった場所を選択してください'
views/patrols/_form.html.erb
<% yml = "patrol" %> <%== tooltip(1, yml, "staff_id") %> <%= f.select(:staff_id, スタッフ配列) %>
ヘルパーでツールチップを作っちゃう。
helpers/appliication_helper.rb
def tooltip(flag, yml, param, content="note") rtn = "<div class='tooltip'>" rtn += "<span class='star'>*</span>" if flag == 1 rtn += t("activerecord.attributes."+yml+"."+param) rtn += "<span class='tip'>" case content when "attr" rtn += t("activerecord.attributes."+yml+"."+param) when "note" rtn += t("activerecord.notes."+yml+"."+param) when "result" rtn += t("activerecord.results."+yml+"."+param) else rtn += "" end rtn += "</span></div>" return rtn end
assets/stylesheets/main.css.scss
/*--- ツールチップ ---*/ .tooltip{position:relative; text-align:center;} .tooltip:hover{z-index:10; color:#000;} .tooltip span.tip{z-index:30; display:none; text-align:left;} div.tooltip:hover span.tip{z-index:20; display:block; position:absolute; top:12px; left:24px; width:240px; border:1px solid #555; background-color:#fff; padding: 4px; color:#505050;}