0

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

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

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

从技术上讲,最后一个渲染步骤似乎是一个障碍。有任何想法吗?

4

2 回答 2

1

将视图复制到您的应用程序中,然后将所有内容替换为= @template.render,或者您执行此操作。

于 2012-09-27T11:41:06.570 回答
0

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

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

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

PS:不需要Email类来实现,邮件正文也可以通过其他方式直接存入数据库。但是,使用可以ActiveRecord方便地访问它。就我而言,我已经上了一Email节课。

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

于 2015-01-06T03:51:16.323 回答