概要
備忘録として残してRuby on Rails7での日付をフォーマット形式で書き直し、
重複のないコードにする際につまずいたため記録する。
経緯
Ruby on Rails5のプログラムをRuby on Rails7に書きなおすときに、\
前準備
以下のファイルを作成しサーバーを再起動
config/initializers/time_formats.rb
Time::DATE_FORMATS[:datetime_jp] = '%Y年 %m月 %d日 %H時 %M分'
エラー
日付フォーマットがうまく適用できずエラーになってしまった。
index.html.erb
<td><%= board.created_at.to_s(:datetime_jp) %></td>
<td><%= board.updated_at.to_s(:datetime_jp) %></td>
⇒ wrong number of arguments (given 1, expected 0)
解決策
【Rails7】Railsで数値を3桁で区切る #Rails - Qiitaの記事より
to_formatted_s(:datetime_jp)
とすることで解決した。
index.html.erb
<td><%= board.created_at.to_formatted_s(:datetime_jp) %></td>
<td><%= board.updated_at.to_formatted_s(:datetime_jp) %></td>
どうやらruby3.1でパフォーマンスチューニングがあり、railsでto_sメソッドでのシンボルの受け渡しが非推奨になったっぽい?