要显示html转义,您可以执行以下操作:
<%= raw @main_post.description %>
是否可以执行存储在@ main_post.description中的ruby / rails代码?例如,全局变量(如MyApp :: Application :: PHONE_NUMBER)或Date.today命令。
命令应如何存储在查询中以及如何在视图中显示?
答案 0 :(得分:2)
首先,这样做极其危险,如果数据库中的数据可以被任何人编辑,但是你...这会给任何海报程序控制,这不是那么多安全漏洞完全缺乏安全性。
有两种方法可以做到:发送到对象的简单字符串:
<%= @custom_object.send(@post.code_field) %>
如果定义具有有限数量方法的自定义类,则可能会触发它们。 (您甚至可以验证该字段以限制安全性暴露)
要执行完全任意的代码,请使用Kernel#eval
<%= eval @post.code_field %>
OTOH,如果您的目标是简单地在帖子中添加一些动态内容,那么如何在帖子中设置一些模板标签然后替换它们呢?
@post.description = "Here's the date: {{date}}"
...
<%= @post.description.gsub('{{date}}', Date.today)