Ruby on rails 可编辑rails邮件模板

Ruby on rails 可编辑rails邮件模板,ruby-on-rails,email,Ruby On Rails,Email,我正在尝试为Rails制作一个可编辑的模板,但我想不出来。基本上,我想做的是一个普通的ActionMailer视图,但在发送之前,我希望能够编辑它的内容 因此,总结一下,假设我在mailer文件夹中有一个report\u user.html.rb视图(其中包含我的默认模板),当我单击报告按钮时,将出现一个新页面,其中包含一个带有编辑器的文本区域。在这个编辑器中,我希望有我的默认模板的邮件正文,进行更改,然后在我单击“发送”之后,它将发送新的更改,这些更改将适合我的模板的其余部分 有什么方法可以做

我正在尝试为Rails制作一个可编辑的模板,但我想不出来。基本上,我想做的是一个普通的ActionMailer视图,但在发送之前,我希望能够编辑它的内容

因此,总结一下,假设我在mailer文件夹中有一个
report\u user.html.rb
视图(其中包含我的默认模板),当我单击报告按钮时,将出现一个新页面,其中包含一个带有编辑器的文本区域。在这个编辑器中,我希望有我的默认模板的邮件正文,进行更改,然后在我单击“发送”之后,它将发送新的更改,这些更改将适合我的模板的其余部分


有什么方法可以做到这一点吗?

您需要创建一个标准的Rails表单。如果您只有一封电子邮件,可以将默认文本保存在Rails代码中,否则可以将电子邮件模板保存在模型中。加载页面时加载表单中的默认内容,然后单击“发送”时发送电子邮件


(如果您想使用降价,请在发送文本之前使用gem-like处理文本。)

我想这就是您想要的

1。没有默认模板

从用户处获取电子邮件正文字符串,并将其传递给发送电子邮件的方法

class UserMailer

2。使用电子邮件模板

报告用户.html.rb


$body_内容

获取模板并用参数[:body]替换$body_内容


希望能起作用,我假设您已经有了与报告页面中的发送操作相对应的控制器操作

要在文本字段中加载邮件正文,您可以使用模板模型实例,其中模板模型具有名为body的字段,它包含邮件模板的源代码,或者使用静态文本以文本形式预加载

通过这种方式,您可以编辑文本字段的内容并将其提交给控制器。在负责报告提交操作的控制器操作中,您可以访问
params
hash中所有提交的数据

创建新模板实例并将其传递给Mailer操作,或者将整个文本表单作为参数传递(不推荐)

将传递的模板对象体嵌入到mailer操作视图中。 我的解决方案如下(为简洁起见,遗漏了一些代码)

在控制器中:

class ReportsController < ActiveController 
  def submit
      new_template = Template.create(params[:template])
      UserMailer.send_report(user_id, new_template.id)
  end
end
在模板中:

<%= @template.body %>


如何加载邮件程序视图的内容?您可能希望以其他方式保存默认文本。使用
value=someText
为表单字段设置默认值。这正是我的问题。如何保存默认文本,以便我可以编辑它,并将其放在邮件视图中。因为让我们想象一下,我在文本字段上放置了一些粗体标记,如**。如何确保它在电子邮件中按预期呈现?这是一个不同的问题,但您可以使用
.html\u safe
从表单中保留html。如果这回答了问题,请接受它,并分别询问其他问题。您没有在OP中询问像
**
这样的格式问题。您所说的是
标记
-谷歌“标记栏”了解如何设置。我认为您需要做的是创建一个模型来保存自定义文本块,或者将自定义文本添加到现有模型中。这是由用户编辑的内容。然后,当你来发送电子邮件时,你将带有标记的自定义文本转换成一些html,并将其插入到标准模板中。是的,这就是我要找的!!谢谢!是的,你和阿迪尔比·坎齐季诺夫帮了大忙!谢谢
<%= @template.body %>