我想创建一个函数,如果未设置日期参数将返回默认值。如果参数不存在提供默认值
如果PARAMS [:START_TIME]不present?
返回DateTime.now
如果PARAMS [:END_TIME]不present?
返回1.week.from_now
我想保持这两项检查的一个功能,但我不能让它工作。如果有更好的方法?
# Main search function
def self.search params, location
self
.join.not_booked
.close_to(Venue.close_to(location))
.activity(Activity.get_ids params[:activity])
.start_date(valid_date params[:start_time])
.endg_date(valid_date params[:end_time])
.ordered
end
# Check if date is nil
def self.valid_date date
if date
date.to_datetime
elsif date == params[:start_time]
DateTime.now
elsif date == params[:end_time]
1.week.from_now
end
end
问另一种方式:
什么是这两个功能结合起来的最佳方式?
# Check if date is nil
def self.check_start date
date.present? ? date.to_datetime : DateTime.now
end
def self.check_end date
date.present? ? date.to_datetime : 1.week.from_now
end
这不是一个硬性要求。我可能会这样做,继续前进。 – Batman
这样,它比在一个单独的方法中对这些if/else变得更加简单和干净。恕我直言。 –
是的,我只是要去那个。谢谢。 – Batman