设计 - 让管理员用户编辑电子邮件模板?

时间:2012-09-27 11:34:54

标签: ruby-on-rails ruby devise

我正在使用Devise来管理Rails的身份验证,并且作为Devise的一部分发送电子邮件进行确认,重置密码。我可以编辑模板,为我们的品牌定制。

客户现在要求的是棘手的,我想要一些指导;他们希望管理员用户能够通过应用程序编辑电子邮件模板。

Devise邮件模板是HAML视图。我想我可以简单地将模板作为一个大字符串存储在DB中,但问题是(a)用户理解HAML(,我需要使用中间标记或TinyMCE)( b)我如何从我的控制器渲染?奇怪的是它走向了正确的观点;我不清楚如何让控制器说“渲染”。

从技术上讲,最后一个渲染步骤看起来像阻挡器;任何想法?

2 个答案:

答案 0 :(得分:1)

将视图复制到您的应用中,然后只需用= @template.render替换所有内容,或者不管怎么做。

答案 1 :(得分:0)

另一种方法是创建一个Email模型,使用所见即所得编辑器编辑这些电子邮件,然后加载并呈现该电子邮件的正文(如果存在),否则呈现硬编码模板(作为后备测试环境或该特定电子邮件行是否被删除。)

这样,不再需要渲染haml,也不需要用html或haml来训练你的管理员。

这是一个应该涵盖所有内容的要点:https://gist.github.com/walidvb/4f0968f6cae5743b67f7

PS:没有必要有Email类来实现这一点,因为电子邮件的正文也可以通过其他方式直接存储在数据库中。但是,使用ActiveRecord可以方便地访问它。就我而言,我已经有了Email课程。

PPS:为防止删除设计电子邮件,我添加了indestructible列。此外,为了允许管理员切换回默认电子邮件,我添加了active列。