我一直在ERB工作,并大量使用.js.erb文件来呈现JS响应 . 我最近为Slim模板而堕落,但是我很难找到一个与Slim格式相同的文件 .

假设我正在我的控制器中执行 update 动作,结束如下:

respond_to do |format|
  format.js {}
end

让's pretend that I' m尝试发送 alert('hello') 作为回应 .

update.js 工作正常, update.js.erb 也是如此 . 如果 update.js.slim 看起来像这样:

javascript:
  alert('hello')

...它是作为响应发送的,如下所示:

<script type="text/javascript">(function() {
  alert('hello');

}).call(this);
</script>

这是行不通的,因为浏览器需要Javascript,这是一个带脚本标签的HTML文件 . 谢谢,苗条 . 如果我使用 | 来呈现纯文本,它会起作用:

update.js.slim

| 
  alert('hi');

管道字符后面的所有内容都以SublimeText 2颜色编码显示,我仍然可以访问 #{} 中的Ruby代码和变量 . 到目前为止,这似乎是我最好也是唯一的选择,如果我想坚持保持Slim格式的东西,但由于它没有给我任何Slim的好处,我几乎觉得只是使用 .js.erb 这些文件可能是更好,因为它有这种东西的原生支持 .

有没有更好的方法呢?