【发布时间】:2021-09-15 00:10:30
【问题描述】:
目前我正在构建用户可以从客户端运行 ruby 代码模块的应用程序 保存代码时,它会保存在数据库中,但是当我获取代码以显示文件时,代码只是打印它没有运行的字符串。
**<%=raw @post.frontend %>**这一行只运行css和html之类的前端,而不是ruby代码
例子:
**@post.frontend =
"<% @fake_post.map do |simple| %>
<h1> <%= simple.description %> </h1>
<% end %>"**
输出:
**<% @fake_post.map do |simple| %>
<%= simple.description %>
<%= simple.description %>
<% end %>**
当我打印 之类的值时,它会抛出未定义的模板错误。
如果我遗漏了什么,请告诉我
【问题讨论】:
-
有没有办法从服务器端运行它。
-
您基本上是希望 Erb 进行它不做的双重评估。你不能只打印一个字符串,它必须被评估。需要注意的是,这是一个巨大的安全风险。
-
是的,我们不能打印字符串。但是我们可以转换字符串以便打印。 .html.erb 文件以类似方式运行 erb 代码。有办法吗?
标签: ruby-on-rails ruby