質問: ### 前提・実現したいこと ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/2d21960c99ef798a8dc70a0eeceb4e64.png) 上記の画像のように、当日を基準にして1週間分の日付(月、日、曜日)をform_for,f.selectで表示したいです。 どのようにしたら良いでしょうか。 例)今日が6月14日(火)の場合 →6月14日(火)〜6月20日(月)の1週間 例)今日が6月15日(水)の場合 →6月15日(水)〜6月21日(火)の1週間
回答: 対象の属性名がhoge_atだとして、selectのオプションに配列の配列で指定してやればOKです。 日付の場合でも、"YYYY/mm/dd"の形で文字列を与えてやれば、日付に変換して格納してくれるはずです。 後は、その配列うまい事生成する事が出来れば思った通りの結果になるはず。 ``` <%= f.select :hoge_at, (0..6).to_a.map {|i| [(Time.now - i.days).strftime("%Y/%m/%d"), (Time.now - i.days).strftime("%m月%d日")} %> ``` 未検証ですが、これでいけるかと。