rails で日付を扱うコードを書いています。
html側で年月をparams[:year_month]で指定してもらい、それが指定されていれば、該当月と月初と月末の日付を、そうでないならば、今日の日付の該当月と月初と月末の日付を取りたいと考えています。
下記のようなコードを書いたのですが、
ruby
1 if params[:year_month] 2 inputs = params[:year_month][0].split('-').map(&:to_i) 3 @start_date = Date.new(inputs[0], inputs[1], 1) 4 @end_date = Date.new(inputs[0], inputs[1], -1) 5 @month = inputs[1] 6 else 7 day = Date.today 8 @start_date = Date.new(day.year, day.month, 1) 9 @end_date = Date.new(day.year, day.month, -1) 10 @month = day.month 11 end
少し冗長な気もしています。
下記のようにdayの初期化時にnilチェックをできないかと思ったのですが、paramsがnilの場合はエラーとなってしまいます。
ruby
1 day = Date.parse(params[:year_month] + "-01") || Date.today 2@start_date = day.beginning_of_month 3@end_date = day.end_of_month 4@month = day.month
if文を使わずにシンプルに上記のコードを実現する方法などはありますでしょうか??
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。