我想将一些Rails模型传递到视图中并渲染它们。
e.g。
在控制器中
@stories = Story.all
在视图中
$('.story-text').html("#{raw @stories[0].story_text}");
但HTML字符串包含"
和'
。因此,HTML不完全包含在字符串中,并且Javascript无法运行。
e.g。它变成了
$('.story-text').html("<img src="/example.jpg" />");
导致错误。
我怎样才能做到这一点?我是否可以在Javascript中使用Python中的三重引号?
编辑 @stories[0].story_text
<p>This is some example text</p><img src="/example.jpg" />
它以text
类型
答案 0 :(得分:1)
而不是raw
,使用escape_javascript
来适当地转义字符串以嵌入javascript。它被别名j
,所以这在你的Haml视图中:
$('.story-text').html("#{j @stories[0].story_text}");
导致生成此javascript:
$('.story-text').html("<p>This is some example text<\/p><img src=\"/example.jpg\" />");
答案 1 :(得分:0)
您正在寻找HTMLEntities