Ruby on rails 如何每天自动更新ical事件(Rails)
我在一个网站上工作,用户可以通过webcal订阅日历提要。 事件每天都在变化。当事件得到更新/删除/创建时,应相应地在用户本地日历上同步 如果用户选择在日历应用程序上每天自动更新,我知道日历应用程序将定期轮询日历的URL以检查更新Ruby on rails 如何每天自动更新ical事件(Rails),ruby-on-rails,refresh,icalendar,Ruby On Rails,Refresh,Icalendar,我在一个网站上工作,用户可以通过webcal订阅日历提要。 事件每天都在变化。当事件得到更新/删除/创建时,应相应地在用户本地日历上同步 如果用户选择在日历应用程序上每天自动更新,我知道日历应用程序将定期轮询日历的URL以检查更新 这在技术层面上究竟是如何运作的 代码(Rails): 控制器: respond_to do |format| format.html format.ics do cal = Icalendar::Calendar.new
这在技术层面上究竟是如何运作的 代码(Rails): 控制器:
respond_to do |format|
format.html
format.ics do
cal = Icalendar::Calendar.new
cal.x_wr_calname = 'My Calendar'
events.each do |event|
cal.event do |e|
e.dtstart = event.start_time
e.dtend = event.end_time
e.summary = "Calendar #{Area.where(area_code: events.first.area_code).first.name}"
e.description = "placeholder"
end
end
cal.publish
render plain: cal.to_ical
end
end
在html中
<button class="btn-subscribe">
<%= link_to 'SUBSCRIBE TO ICAL', area_show_url(protocol: :webcal, format: :ics, id: Area.find(@selected_area.id)) %>
</button>
感谢您的帮助和时间它是如何工作的:
您的网站提供了一个日历提要(基本上是一个.ics文本/日历文件,可能是根据最新数据实时生成的,无需缓存)。希望该文件包含有效的RFC5545数据,从而显示中指定的任何事件更新(使用UID和序列以及每次VEVENT修改的LAST-MODIFIED)
订阅应用程序将根据自己的算法定义,在合适的时候检查任何更新。他们解析.ics文件,处理RFC5545事件定义,并相应地更新系统 这在技术层面上究竟是如何运作的?