从字符串而不是文件加载Rails视图模板

bra*_*ana 0 ruby ruby-on-rails erb

我在我的Rails应用程序中有一个典型的邮件程序设置,它有两个视图(.text.erb和.html.erb),用于邮件程序类的每个方法.这些视图位于app/views /目录中,并且正在正确呈现它们.

现在,我可以渲染一个标记模板在字符串变量中的视图,而不是渲染app/views/*目录中的文件.

要使用的模板因用户而异,并从数据库中选取.如何渲染此字符串中的ERB模板,而不是在views目录中呈现模板文件?

一个非常相似的问题,但是从Django世界来看:从字符串而不是从文件加载模板

请注意:我不想将渲染视图的输出捕获为字符串.关于这一点,有几个问题.

请注意那些将其标记为重复的人:这不是关于控制器视图,而是关于邮件程序视图.每个邮件程序方法都有两个视图,需要呈现这两个视图,然后在电子邮件中作为适当的内容发送.

cra*_*ind 6

当然.这很简单

render inline: string_template

对于邮件视图:

mail do |format| 
    format.html { render inline: string_template}
end
Run Code Online (Sandbox Code Playgroud)