2014-07-08 17 views
-2

我有存储在表中的html内容。在这些内容我想通过一些Ruby代码如何在html内容中执行Ruby代码

例如

temp = "<html><head>...</head><body>... <%= @something %> ...</body></html>" 

再经过我用temp.html_safe或原始临时

但@something不打印

我怎么能做这个 ?

请帮帮我

+0

'@something不工作' - 不工作就像让你的电脑过热和爆炸或不工作就像抛出一个错误? – dax

回答

0

这种功能可以让你在一些危险的水域。如果有人妥协数据库,编辑该记录中的代码以执行破坏性操作,然后通过应用程序执行该代码,该怎么办?

您应该看看使用Liquid而不是直接执行ERB。 (也请看附带的Railscast。)

1

只要在您的代码中做@temp = "<p>... #{@something} ...<p>",然后在您的视图<%= @temp.html_safe %>应该就足够了。

+0

“#{@ something}” - not printing @something –

+0

您可以举一个用例的例子吗? –

+0

@ TEMP = “#{@}东西” 后。然后我尝试@ temp.html_safe但它的打印像“\ r \ n \ r \ n \ r \ n \ r \ n \#{ @ form.inspect} \ r \ n ...“。 –

相关问题