回答編集履歴
1
追記
test
CHANGED
@@ -6,3 +6,19 @@
|
|
6
6
|
|
7
7
|
model の関連(とenumがあるならそれも)を載せてください。
|
8
8
|
|
9
|
+
追記
|
10
|
+
Post の enum country、enum whiskey_type: はなんの役にも立っていません。Post に country、whiskey_type という integer な項目があるなら別ですが。
|
11
|
+
いまは 選択肢の定義として使っているようですが、それをするなら、model Country, WhiskeyType に定義すべきものです。
|
12
|
+
|
13
|
+
さて、、、
|
14
|
+
Country の field name が 'scotland ' だったら I18N で 'スコットランド' と表示する、というのは私の I18N力ではできません。
|
15
|
+
思いつくのは
|
16
|
+
1. name を string から enum なinteger にする。
|
17
|
+
2. name を enum にするが、enum name: { scotland: 0, ireland: 1, , , } ではなく enum name: { scotland: 'scotland', ireland:, 'ireland', , , } にする
|
18
|
+
|
19
|
+
1はできると思いますが、2は思いつきなのでできるかどうかはお試しを。
|
20
|
+
いずれにしても、Whiskey の産地が増える毎に 「Countryを増やす」のではなく、「enumを追加してから Countryを増やす」という、codeを触らなければならないのには強い違和感をいだきます。
|
21
|
+
I18N とはいえ、「フランス語やタイ語 などのサポートは考えておらず、英語と日本語だけ」でよいのなら name_en、name_jp とでもいうfieldを用意して、localeで切り分ける `def name; locale == :en ? name_en : name_jp ; end ` ほうがメンテはらくですね。
|
22
|
+
いや、サポート言語は徐々に増やすのだ、ということでしたら config/locale の yml ではなく 辞書tableを作るのかな。I18Nの辞書をconfig/locale以外から取り込むという方法があると思うので、それを発見できたら 辞書tableから取り込めば I18Nでできます。見つからなかったら decolaterかな
|
23
|
+
|
24
|
+
|