【チーム開発】本日の進歩状況2020-07-07

・本日の作業

gemのenum_helpを導入しenumi18n対応の記述を簡略化した。

ja.ymlへの記述で少々てこずる。インデントが一つ違うだけで反映しないので最初はなぜi18n対応にならなかったのか分からなかった。

ja:
enums:
product:
condition:
brand_new: '新品・未使用'
look_brand_new: '未使用に近い'
no_noticeable_scratches: '目立った傷や汚れなし'
some_scratches: 'やや傷や汚れあり'
noticeable_scratches: '傷や汚れあり'
bad_condition: '全体的に状態が悪い'

enumactiverecordと同じインデントにしなくてはいけなかったが、最初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"}
 

 

商品ページには

= product.condition_i18n

と記入するだけで、i18nで翻訳された文を出力することができた。

ちなみにenum_helpを導入しないと以下の記述

= I18n.t("activerecord.attributes.product.conditions.#{product.condition}")
 

 

 ・躓いているところ

躓いているというよりは手こずりそうな予感があるのはancestryを使って多階層カテゴリーを作成するということ。

Qiitaの記事を参考に頑張ろうと思う。