我想实现此功能,我不确定该怎么做。我基本上有一个日历应用程序,我可以创建事件。创建活动后,它会在日历中显示。
现在我有Calendars控制器和Calender模型,我有事件控制器和事件模型。我正在使用这个关联“Calendar has_many:events”,我有CRUD用于事件。
直到这一点,我可以创建单个事件,但现在我有兴趣同时创建多个事件。我的意思是我想创造反复发生的事件,我该怎么做?我能用现有的控制器和模型做到这一点,还是需要更多的控制器和型号?
这是我创建单个事件的代码
class EventsController < ApplicationController
before_action :find_calendar, except: [:index]
def create
@event = @calendar.events.new event_params
if @event.save
respond_to do |format|
format.html {redirect_to business_path(@business, calendar_id: @calendar.id)}
format.js
end
else
render :new
end
end
private
def event_params
params.require(:event).permit([:summary, :unique_id, :time_of_day, :start_time, :end_time, {activity_ids:[]}, :calendar_id])
end
def find_calendar
# @calendar = @business.calendar
@calendar = Calendar.find(params[:calendar_id])
end
答案 0 :(得分:0)
我认为您想知道如何实施重复活动。在数据库级别,它只创建一个记录。您应该添加额外的属性来记录event_type(单个事件,重复事件...),event_start_time,event_end_time。
在渲染重复事件时,根据当前页面的时间范围,一个重复事件将转换为多个单个事件。
您可以查看js版本日历实现http://arshaw.com/fullcalendar/,它会为您提供一些提示。