1

iCalendar gem を使用してiCal ファイルからイベントをインポートする rake タスクのセットアップがあります。iCal には、標準の .ics フィールドに加えて、いくつかのカスタム フィールドも含まれています。それらの値もインポートすることは可能ですか?

問題なく処理できるiCalファイルの次のような行:

DESCRIPTION:The lions and tigers are on exhibit.

この問題は、次のような行で発生します。

X-TRUMBA-CUSTOMFIELD;NAME="Event Location";ID=10831;TYPE=SingleLine:Lower Level\, 
across from the Stars and Stripes Cafe

カスタムの「イベントの場所」フィールドはどのように参照すればよいですか?

これまでのコードは次のとおりです。

desc "Import events from Smithsonian"
task :smithsonian => :environment do
  url = "http://www.trumba.com/calendars/smithsonian-events.ics"
  cals = Icalendar.parse(open(url))
  cal = cals.first

  cal.events.each do |event|
    e = TempEvent.find_or_create_by_name(
          :name         => event.summary.to_s,
          :description  => event.description.to_s,
          :starts_at    => event.dtstart.to_s,
          :ends_at      => event.dtend.to_s,
          :tag_list     => event.categories,
          :url          => event.url,
          :facebook_url => "https://www.facebook.com/Smithsonian",
          :twitter_url  => "https://twitter.com/smithsonian",
          :venue_name   => "Smithsonian",
          :external_id  => event.uid.to_s,
          :source       => "Smithsonian iCal import",
          :published    => true)
  end
end
4

1 に答える 1

2

icalendar宝石を使用。
このタイプの属性があると仮定すると

オーガナイザー;CN=abc:MAILTO:abc@gmail.com

パラメータ値にアクセスするには、ical ファイルを読み取って解析します。

cal = Icalendar.parse(cal_file).first

event = cal.events.first

ここで、event.organizer から uri が返されます。

CN 値の使用にアクセスするには、

event.organizer.ical_params["CN"][0]

于 2013-04-18T11:47:44.937 に答える