我想創建一個函數,如果未設置日期參數將返回默認值。如果參數不存在提供默認值
如果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