尝试运行即将出现的数据库并由用户从前端保存的"ruby code"。(Ruby on Rails)



目前我正在构建用户可以从客户端运行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 %>**

当我打印<%= puts @post.frontend %>抛出未定义模板错误。

让我知道如果我错过了什么

当您要将ERB计算为文本时,需要通过ERB运行模板。

<%= ERB.new(@post.frontend).result_with_hash(fake_post: @fake_post) %>

你需要将模板中的@fake_post替换为fake_post才能正常工作。

注意:允许用户编辑ERB意味着你需要信任你的用户。ERB允许运行任何Ruby代码。用户可以添加代码来暴露他们的数据库凭据,或者更改数据库中的数据,或者删除重要的内容。

相关内容

  • 没有找到相关文章

最新更新