我正在使用Devise来管理Rails的身份验证,并且作为Devise的一部分发送电子邮件进行确认,重置密码等。我可以编辑模板,为我们的品牌定制。
客户现在要求的是棘手的,我想要一些指导;他们希望管理员用户能够通过应用程序编辑电子邮件模板。
Devise邮件模板是HAML视图。我想我可以简单地将模板作为一个大字符串存储在DB中,但问题是(a)用户理解HAML(即,我需要使用中间标记或TinyMCE)( b)我如何从我的控制器渲染?奇怪的是它走向了正确的观点;我不清楚如何让控制器说“渲染”。
从技术上讲,最后一个渲染步骤看起来像阻挡器;任何想法?
答案 0 :(得分:1)
将视图复制到您的应用中,然后只需用= @template.render
替换所有内容,或者不管怎么做。
答案 1 :(得分:0)
另一种方法是创建一个Email
模型,使用所见即所得编辑器编辑这些电子邮件,然后加载并呈现该电子邮件的正文(如果存在),否则呈现硬编码模板(作为后备测试环境或该特定电子邮件行是否被删除。)
这样,不再需要渲染haml,也不需要用html或haml来训练你的管理员。
这是一个应该涵盖所有内容的要点:https://gist.github.com/walidvb/4f0968f6cae5743b67f7
PS:没有必要有Email
类来实现这一点,因为电子邮件的正文也可以通过其他方式直接存储在数据库中。但是,使用ActiveRecord
可以方便地访问它。就我而言,我已经有了Email
课程。
PPS:为防止删除设计电子邮件,我添加了indestructible
列。此外,为了允许管理员切换回默认电子邮件,我添加了active
列。