【发布时间】:2013-07-31 03:30:38
【问题描述】:
我有一个响应 .js.coffee 文件的控制器操作,我的 Rails 3.2.12 版本应该支持该文件。问题是解析中的某些内容允许用户提供的数据导致 javascript 失败。我已经像这样简化了这个例子:
action.js.coffee 文件:
$('my_container').append("<%= j render(:partial => 'my_partial') %>")
my_partial.html.erb 文件只包含不应插入的一行:
"#{this should not be evaluated}"
实际渲染的 javascript
$('my_container').append("\"" + (this(should(!be(evaluated)))) + "\"\n\n");
哇!到底是怎么回事?我可以通过从文件名中删除 .coffee 来解决这个问题,但这似乎是 Rails 的一个错误?
【问题讨论】:
-
为什么不插值呢? CS 在双引号中插入字符串,这看起来或多或少类似于 CS 代码。
-
我简化了这个例子,实际上被插值的实际上是系统上用户提供的注释;他只是碰巧在笔记中使用了#{}。
标签: ruby-on-rails coffeescript