使用+ 1.day RAILS查找日期数组中的下一个日期

时间:2015-02-17 05:42:00

标签: ruby-on-rails arrays date methods

我有预约应用程序。我正在努力建立" 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

1 个答案:

答案 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格式的记录总数(日期)。