我有一个控制器动作,它响应一个.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的一个错误?
答案 0 :(得分:1)
我通过更改js.coffee文件中的双引号解决了这个问题,但我仍然不确定它是一个错误。希望这会帮助别人!
更改:
$('my_container').append("<%= j render(:partial => 'my_partial') %>")
到
$('my_container').append('<%= j render(:partial => 'my_partial') %>')