従業員がいつ休暇を取っているかを示す単純なカレンダー フィードがあり、カレンダーを購読して誰が休暇を取っているかを確認できます。これは、Apple 製品 (Mac OS X および iOS) では問題なく動作しますが、Outlook または Android では Bean では動作しません。iCal Ruby ライブラリの 1 つを使用する必要があるかもしれないと思いますが、必要がない場合は使用しない方がよいでしょう。次のリンクを使用すると、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 の gem を見てきましたが、それらはビューを生成するには少し多すぎるように見えましたが、おそらくそれだけの価値があります。どんな助けや指針も大歓迎です。
ルートを簡素化するためのボーナスポイント:)
ありがとう、
ジェイソン
更新:以下の指示に従って、ビューに以下を追加して機能させました。
DTSTAMP:<%=Time.now.strftime("%Y%m%dT%H%M%SZ")%>
Outlook 2010 で問題なく動作します。明日再確認して、Outlook 2007 で動作することを確認します。
更新: Outlook 2007 は使用できません。まだ解決策を探しています。