如何使用多个变量生成“预制响应”

时间:2013-09-19 17:51:51

标签: ruby

我是Ruby和编程的新手。我想创建一个小程序来自动完成我目前正在手工完成的一项繁琐的工作任务,但我不知道从哪里开始。

人们注册通过在线表格参加课程,我在每天结束时收到他们的注册信息作为CSV文件。我逐行浏览该文件并生成一封确认电子邮件,根据他们在在线表格上的输入发送给他们:他们想要的课程,他们的房间偏好,他们选择支付多少课程费用(滑动)电子邮件最终看起来像这样:

亲爱的,所以,感谢您与Superdude教授一起报名参加“如此如此精彩的课程”。课程开始于2030年9月1日星期一下午4点,周四下午1点结束。你支付了这样的数额......

等等。理想情况下,该程序会在CSV文档中包含“学生姓名”,“课程标题”,“付费”等信息,并根据文本块生成电子邮件(“亲爱的 ,感谢您签名对于_ ,“)以及外部存储的变量(课程的日期),这样它们很容易编辑而无需进入源代码(可能是CSV和纯文本文件)。< / p>

此外,我需要输出为富文本,因此我可以加粗并强调某些内容。我熟悉Markdown,所以我可以在源代码中使用它,但如果输出可能是富文本,那将是理想的。

我不希望任何人为我编写程序,但如果你能让我知道我应该研究什么,甚至我应该知道Google应该做什么,那将非常有帮助。

1 个答案:

答案 0 :(得分:3)

我假设您正在尝试整理电子邮件。如果是这样,我可能会从一个简单的ERB模板开始。如果要生成HTML,可以编写一个HTML模板和一个纯文本模板;变量替换对两者都有相同的作用,除了你需要html-escape包含HTML认为特殊的字符的任何东西(&符号,大于,少于,例如)。请在此处查看ERB Documentation

如果您正在尝试解析CSV,请使用FasterCSV或类似的库。 FasterCSV is documented这里。

如果您想发送电子邮件,可以使用ActionMailer,邮件gem或pony gem。 ActionMailer是rails的一部分,但可以单独使用。 Pony也是创建电子邮件的好外观; ActionMailer和Pony都依赖于“邮件”宝石,因此,除非您想花更多时间考虑电子邮件格式的工作原理,否则请使用其中一种。

如果您没有尝试发送电子邮件,而是尝试创建格式化文档,您仍然可以使用ERB,但可以使用它在TeX中生成输出,或者如果您比我更冒险, Word兼容的XML文档。或者,如果您已经使用Microsoft Word或RTF,您可以尝试http://ruby-rtf.rubyforge.org/(Ruby RTF)或使用COM / OLE互操作与Word交谈,但我只会这样做,如果我真的必须这样做;如果我不得不走这条路,我可能会把它搞砸,只需使用Word中内置的邮件合并功能,或者使用一些VBA代码。