我正在一个网站上,用户可以通过Webcal订阅日历供稿。事件每天变化。当事件被更新/删除/创建时,应该相应地在用户本地日历上进行同步。
如果用户选择每天在日历应用程序上自动更新,则我了解到日历应用程序将定期轮询日历的URL以检查更新。
这在技术层面上是如何工作的?这将与下面的代码一起使用吗(如果数据库中的事件每天都发生变化?)
代码(轨道):
Controller:
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>
感谢您的帮助和时间
我正在一个网站上,用户可以通过Webcal订阅日历供稿。事件每天变化。当事件被更新/删除/创建时,应该在用户本地日历上进行同步...
它的工作方式: