0

在我的管理站点中,我想要可编辑的

数据库文本中的动态主题。

mailer = MailTemplate.find_by_template_name('friend_request')
# mailer.subject = "#{@user.username} wants to be friend on site.com"

我必须使用如下代码:

mail(:to => friend.email, :subject => mailer.subject) do |format|
  format.text { render :inline => nl2br(mailer.body) }
  format.html { render :inline => nl2br(mailer.body) }
end

现在,我发现 body 可以正常使用动态代码。但SUBJECT不是 mailer.subject为了价值而工作"#{@user.username} wants to be friend on SportsPundit.com"

请建议。我也试过了eval(mailer.subject)

4

1 回答 1

1

考虑使用不同的模板语言,这样您就不会将 ruby​​ 暴露给用户。车把可能是一个不错的选择。

在您的 MailTemplate 对象中,主题将是

"{{ user/username }} wants to be friend on site.com"

@user然后你可以使用handlebars-rails 或其他一些库来渲染它,就像user在handlebars 模板中一样传递。这对普通用户来说更好,所以他们不会看红宝石。

于 2013-06-07T15:05:49.870 回答