【チーム開発】本日の進歩状況2020-07-07
・本日の作業
gemのenum_helpを導入しenumとi18n対応の記述を簡略化した。
ja.ymlへの記述で少々てこずる。インデントが一つ違うだけで反映しないので最初はなぜi18n対応にならなかったのか分からなかった。
ja:
enums:
product:
condition:
brand_new: '新品・未使用'
look_brand_new: '未使用に近い'
no_noticeable_scratches: '目立った傷や汚れなし'
some_scratches: 'やや傷や汚れあり'
noticeable_scratches: '傷や汚れあり'
bad_condition: '全体的に状態が悪い'
enumをactiverecordと同じインデントにしなくてはいけなかったが、最初activerecordよりインデントを2つ下げていたので反映されなかった。
エラーも出ないので注意。
gemを導入したことにより大分記述がすっきりした。
gemを導入しなかった場合
= f.select :condition, options_for_select(Product.conditions.map { |k, _v| [t("activerecord.attributes.product.conditions.#{k}"), k] }), { prompt: "選択してください" } ,{ class: "select_form"}
enum_helpを使った場合
= f.select :condition, Product.conditions_i18n.invert, { prompt: "選択してください" }, { class: "select_form"}
商品ページには
と記入するだけで、i18nで翻訳された文を出力することができた。
ちなみにenum_helpを導入しないと以下の記述
・躓いているところ
躓いているというよりは手こずりそうな予感があるのはancestryを使って多階層カテゴリーを作成するということ。
Qiitaの記事を参考に頑張ろうと思う。