ruby-on-rails - 如何在 rails 中创建 ICS 并将其作为邮件附件发送?

标签 ruby-on-rails ruby-on-rails-3 calendar sync

如何在 rails 中创建 ICS 并将其作为邮件附件发送?

最佳答案

这可以使用 ri_cal gem 来完成:
为了创建事件 ics 文件,您要创建事件:

event = RiCal.Event do
      description "MA-6 First US Manned Spaceflight"
      dtstart     DateTime.parse("2/20/1962 14:47:39")
      dtend       DateTime.parse("2/20/1962 19:43:02")
      location    "Cape Canaveral"
      add_attendee "john.glenn@nasa.gov"
      alarm do
        description "Segment 51"
      end
    end

然后你使用 .export(stream)在事件上(这会将事件插入到仅包含此事件的包装日历中,因此您不必自己包装它)。
可以将流设置为可以按照 Andy 建议的方式附加的文件,或者您可以在没有流参数的情况下调用此方法,该方法将返回一个可以按原样放入附件的字符串。这看起来像这样:
class UserMailer < ActionMailer::Base
  def send_event_email(user, event)
    attachments['event.ics'] = event.export()
    mail(:to => user.email, :subject => "Calendar event!")
  end
end

关于ruby-on-rails - 如何在 rails 中创建 ICS 并将其作为邮件附件发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4708056/

相关文章:

ruby-on-rails - 多级 block 方法正在产生问题

ruby-on-rails - rails : how to check admin user for setting up a route?

mysql - Rails 连接和喜欢?

android - 以编程方式从android中的日历中删除事件

ios - 无法为 iOS Swift 运行 Google Calendar API 示例代码

iOS 通知触发器 : fortnightly and/or quarterly

ruby-on-rails - 思考 sphinx 不索引新添加的记录

ruby-on-rails - Spree 模块装饰器

ruby-on-rails-3 - Rails 3:HTTP_USER_AGENT

ruby-on-rails - AbstractController::DoubleRenderError 不应该的