如何在表单文本区域中显示模型参数

How to display model parameters in a form text area

提问人:Cat Morley 提问时间:4/25/2023 更新时间:4/28/2023 访问量:57

问:

我正在使用表单在我的 rails 应用程序中创建自定义电子邮件模板,但我希望能够使用模型中的参数自定义电子邮件正文的某些部分。

这是我的mailto链接的代码:

<a href="mailto:<%= @contact.email_address %>?subject=<%= @tracker.title %> <%= @email.template.subject %>&Body=Hey <%= @contact.first_name %>,%0D%0A %0D%0A <%= @email.template.body %> %0D%0A Thanks, Cat">Send template</a>

因此,在生成电子邮件正文的 @email.template.body 的表单文本区域中,我希望能够编写如下内容:

We'd love to run a feature on <%= @goal.title %> for our magazine.

我希望 @goal.title 代码显示它从我的模型中获得的值 - 在本例中为企业名称。但是,它只是显示 <%= @goal.title %>而不是拉入地名。

我希望这是有道理的。有没有人对我如何使代码正确显示有任何建议,或者知道允许我创建在这种情况下可能起作用的自定义变量的文本编辑器?

Ruby-on-Rails 表单 电子邮件 模板 变量

评论

0赞 max 4/25/2023
您可能应该只使用表单而不是链接。
0赞 Cat Morley 4/25/2023
谢谢@max - 如果我使用表单,有没有办法获取 goal.title 等参数以显示正确的内容?
0赞 max 4/25/2023
有点不清楚你到底在追求什么。您是否希望创建用户可编辑的邮件模板,他们可以在其中插入占位符?或者模板是程序员关心的问题,而您只想将变量插入其中?
0赞 max 4/25/2023
如果是前者,则需要使用不同的模板引擎,然后是 ERB,它受到的限制要小得多(并且可以造成更少的伤害)。例如,车把/小胡子。
0赞 Cat Morley 4/27/2023
谢谢@max - 这是一个只有我才能访问的应用程序,所以我不需要担心用户添加 javascript 等。我会看看车把 - 你知道有什么好的入门指南吗?

答:

0赞 max 4/28/2023 #1

如果完全信任输入,则可以在控制器中使用内联渲染:

result = render_to_string(inline: the_template_string)

可以在其他上下文(如模型)中进行渲染,但您必须设置绑定并执行更多细节工作 - 有关示例,请参阅 ERB 文档

我怎么强调都不为过,这应该非常小心。ERB 可以运行任意 Ruby 代码,包括运行 shell 命令。

评论

0赞 Cat Morley 4/29/2023
再次感谢你@max - 这很完美,你又来救援了!