0

我有一个简单的日历提要,显示员工何时休假,我可以订阅日历并查看谁休假。这适用于苹果产品(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 没有继续。仍在寻找解决方案

4

1 回答 1

1

Outlook 是正确的:您的VEVENT组件缺少强制DTSTAMP属性。

于 2012-12-04T03:31:31.260 回答