0

従業員がいつ休暇を取っているかを示す単純なカレンダー フィードがあり、カレンダーを購読して誰が休暇を取っているかを確認できます。これは、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 は使用できません。まだ解決策を探しています。

4

1 に答える 1

1

見通しは正しいです。VEVENTコンポーネントに必須DTSTAMPプロパティがありません。

于 2012-12-04T03:31:31.260 に答える