はじめに
アドベンドカレンダーの下記企画に参加したので、開発過程で成功したことを、一部紹介する形で記事を書きたいと思います。
環境
Windows, WSL
Docker
Ruby 3.2.3
Rails 7.1.3
認証機能にdevseを使用
どんな状態?
<div class="text-sm">作成日:<%= l post.created_at, format: :short %></div>
もともとはこのようなコードを入力していました。
ローカルでは「作成日:10/23 15:02」というような表示でした
やりたかったこと
「作成日:2024/10/23 15:02」というように
年を入れたい!!プチチャレンジスタート!!
やったこと
config/locales/ja.yml
で以下追記
ja:
time:
formats:
default: "%Y/%m/%d %H:%M" # デフォルトのフォーマット
はじめ、これだけ追加して満足していました。
ですが、ローカルで確認したところ相変わらず変化なし
なぜ??
完全に見落としていたformat: :short
これは短縮形のフォーマットになるそうで
改めてconfig/locales/ja.yml
で以下追記
ja:
time:
formats:
default: "%Y/%m/%d %H:%M" # デフォルトのフォーマット
short: "%m/%d %H:%M" # 短縮フォーマット
long: "%Y/%m/%d %H:%M" # 長いフォーマット
👆一応わかりやすいように全て追記。
やっとなぜダメだったのか理解した
そしてビューファイルの方も修正します
app/views/posts/_post.html.erb
<div class="text-sm">作成日:<%= l post.created_at, format: :long %></div>
で「作成日:2024/10/23 15:02」という表示に!!
さいごにまとめ
このコード何だろう。と思ったらすぐ調べるべし。
直ぐ違和感に気づけるようになりたいです。
今回の記事が何か参考になれば幸いです。