いわりょのBlog

IT関連で学んだことを書いていきます。

created_atのフォーマットを変更して記事の日付に使う

実現すること

記事投稿をした場合、投稿日を表示することがあると思います。
f:id:Ryo10Leo:20200103175710p:plain
↑記事タイトルの隣の日付です

Articleモデルから新たな記事を作れば、自動的にcreated_atカラムが登録されるのでそこの情報から日付を表示させればできそう

しかしでcreated_atカラムはそのままの表示形式だと"yyyy-mm-dd hh:mm:ss"になっており、とても使いづらいです。

そこでデフォルトの表示形式を設定していろんな形式パターンを実現してみます。

方法

gem 'rails-i18n'

こちらのgemをインストール


デフォルトの多言語対応を日本語にし、ロケールファイルのpathを通します。

application.rb

    config.i18n.default_locale = :ja #日本語に対応させます
    config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}').to_s] #localesファイルが読み込まれるようになる

config/locales配下にja.ymlファイルを作成

config/locales/date/ja.yml

ja:
  time:
    formats:
      default: ! '%Y/%m/%d'
      short: ! '%m月%d日'
      long: ! '%Y年%m月%d日'

あとはビューにフォーマットを指定して表示させるだけです!

デフォルト

<%= l  @article.created_at %>

f:id:Ryo10Leo:20200103182949p:plain
デフォルト

long形式

<%= l  @article.created_at, format: :long %>

f:id:Ryo10Leo:20200103183758p:plain

short形式

<%= l @article.created_at, format: :short %>

f:id:Ryo10Leo:20200103183849p:plain

記述するときは<%%>内の「l」(小文字のエル)絶対忘れないでください!!