如何在呈现js.coffee文件以响应操作时转义

时间:2013-07-30 19:02:39

标签: ruby-on-rails coffeescript

我有一个控制器动作,它响应一个.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的一个错误?

1 个答案:

答案 0 :(得分:1)

我通过更改js.coffee文件中的双引号解决了这个问题,但我仍然不确定它是一个错误。希望这会帮助别人!

更改:

$('my_container').append("<%= j render(:partial => 'my_partial') %>")

$('my_container').append('<%= j render(:partial => 'my_partial') %>')