Just do IT

思うは招く

Rails で date型カラムの view 表記を l メソッドのオプションで変更する

やりたいこと

  • カラム(date型)の表記をview側で変えたい
  • 例:「2020/08/25」→「08/25」

解決

こんなロケールファイルがあるとする。

#翻訳ファイル
ja:
  date:
    formats:
      default: "%Y年%m月%d日"
      ym_jp: "%Y年%m月"
      ym: "%Y%m"
      ymd_hy: "%Y-%m-%d"
      da_jp: "%e日(%a)"
      short: "%Y/%m/%d"
      md: "%m月%d日"
      sm: "%m/%d"
  time:
    formats:
      default: "%Y年%m月%d日(%a) %H:%M"
      short: "%Y/%m/%d %H:%M"
      time_only: "%H:%M"
      date_only: "%m月%d日"
      date_and_time: "%m月%d日%H:%M"

date以下のフォーマットを指定する。

#viewファイル
li = l(ranking.ranked_on, format: :sm)

間違っていた方法

間違ってtimeからフォーマットを選んでいた。これだとdefaultとshortは表示されるが、time_onlyやそれ以下のフォーマットはエラーになって表示されなかった。timeだから当たり前だ・・・

#viewファイル
li = l(ranking.ranked_on, format: :date_only)

参考:【初心者向け・動画付き】Railsで日時をフォーマットするときはstrftimeよりも、lメソッドを使おう - Qiita