我有一个简单的日历提要,显示员工何时休假,我可以订阅日历并查看谁休假。这适用于苹果产品(Mac OS X 和 iOS),但不适用于 Outlook 或 Android。我想我可能需要使用 iCal ruby 库之一,但如果不需要,我不希望这样做。Microsoft Outlook 2007 说,在使用链接时,提要不是有效的日历文件:
www.nameofwebsite.com/time_off_feed/#ofbranch/time_off_feed.ics
例如:
www.nameofwebsite.com/time_off_feed/350/time_off_feed.ics
day_offs_controller.rb
def time_off_feed
@users=User.where("current_branch=?", params[:id])
respond_to do |format|
format.ics
end
end
days_off.ics.erb
BEGIN:VCALENDAR
METHOD:PUBLISH
VERSION:2.0
PRODID:-//Website Name/Time-Off//EN
X-WR-CALNAME:Website Name
CALSCALE:GERGORIAN
<% @users.each do |user| %>
<% user.day_offs.each do |day_off| %>
BEGIN:VEVENT
UID:<%=day_off.id%>
SUMMARY:<%= day_off.user.name.titleize %> | <%= day_off.do_type %>
DTSTART:<%= day_off.start_date.strftime("%Y%m%d") %>
<% end_day=day_off.end_date + 1.day %>
DTEND:<%= end_day.strftime("%Y%m%d") %>
END:VEVENT
<%end%>
<% end %>
END:VCALENDAR
我认为路线没有问题,但以防万一。
路线.rb
match '/time_off_feed/:id/time_off_feed', to: 'day_offs#time_off_feed', :as => 'time_off_feed_path'
我查看了 ri_cal 和 iCalendar 宝石,但它们似乎有点难以生成视图,但也许它们是值得的。任何帮助或指示将不胜感激。
简化路线的奖励积分:)
谢谢,
杰森
更新:按照以下说明将以下内容添加到视图中以使其正常工作。
DTSTAMP:<%=Time.now.strftime("%Y%m%dT%H%M%SZ")%>
在 Outlook 2010 上完美运行,我明天会仔细检查并确保它在 Outlook 2007 上运行。
更新:outlook 2007 没有继续。仍在寻找解决方案