我有预约应用程序。我正在努力建立" prev"和" next"日期数组中的链接。我想找到" next"使用"当前"日期+ 1.day ......但这不起作用。日期并不总是按顺序添加,所以我必须使用日期而不是ID。所有日期都属于特定事件......因此他们必须拥有该信息。
EventDate控制器
def show
@set_date = AppointmentDate.find(params[:id])
@event = Event.find(@set_date.event_id)
@next = @set_date.appointment_dates.where(schedule_date: @set_date.schedule_date + 1.day)
@prev = @set_date.appointment_dates.where(schedule_date: @set_date.schedule_date - 1.day)
end
答案 0 :(得分:1)
获取数组中的所有日期,然后使用以下内容:
@total = @records.length
current = @records.index(std_date(@date))
@next = @records[current + 1] if @records.length >= current + 1
@prev = @records[current - 1] if current != 0
@first = @records.first if current != 0
@last = @records.last if current + 1 < @records.length
@current = current + 1
其中std_date是以dd / mm / yyyy转换日期的辅助函数,而@date是今天的日期或任何通过的日期 @records是dd / mm / yyyy格式的记录总数(日期)。