ruby 如何从db渲染代码并使其在erb文件中工作

6yjfywim  于 2023-05-28  发布在  Ruby
关注(0)|答案(1)|浏览(117)

我有一些这样的标记:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html 
xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" 
content="text/html; charset=utf-8">  <title>something<title><......

嵌入ruby标签如下:

Hi, <%=@user.name%>

我将所有文件代码存储在数据库列中,现在我想让这些代码工作,但来自数据库-我如何才能做到这一点?

<%= @emaildetail.description %>

我尝试过html_safe,但这并不能使Ruby代码和变量工作

s4chpxco

s4chpxco1#

您看到的ruby标记名为ERB
下面是一个如何使用它的最小示例。

require 'erb'

x = 42
template = ERB.new <<-EOF
  The value of x is: <%= x %>
EOF
puts template.result(binding)

在您的例子中,模板内容将来自数据库而不是代码,但其余部分应该是相同的。
这将解析所有的ruby代码和变量。你仍然需要调用.html_safe来将它呈现为html。

相关问题