Coffeescript 带有erb扩展名的Coffee脚本出现缺少模板错误

Coffeescript 带有erb扩展名的Coffee脚本出现缺少模板错误,coffeescript,ruby-on-rails-3.2,erb,Coffeescript,Ruby On Rails 3.2,Erb,我使用的是rails 3.2.11和coffee rails 3.2.2 在这里,我试图在文件/app/views/my_files/create.js.coffee.erb中呈现一个咖啡脚本 以下是我的控制器代码的样子 class MyFilesController < ApplicationController respond_to :js def create end end class MyFileController

我使用的是rails 3.2.11和coffee rails 3.2.2

在这里,我试图在文件/app/views/my_files/create.js.coffee.erb中呈现一个咖啡脚本

以下是我的控制器代码的样子

class MyFilesController < ApplicationController    
  respond_to :js

  def create
  end

end
class MyFileController
点击“创建操作”时,我得到缺少模板错误。但当我将文件create.js.coffee.erb重命名为create.js.coffee时,效果很好

我不明白.coffee上的.erb扩展名的问题是什么,在这种情况下,当模板已经存在时,为什么会出现缺少模板的错误


谢谢

您尝试将coffeescript呈现为视图而不是将其用作资产有什么特殊原因吗

.erb是一个ruby脚本文件,在编译时生成html文件。 .js.coffee在编译时会生成一个.js文件。您应该将.erb与create.html.erb模板一起使用,该模板反过来使用create.js.coffee

<%= javascript_include_tag "create" %>


这应该在您的create.html.erb中,myfilecontroller中的create方法将调用该文件

将您的文件重命名为create.js.coffee


只是有同样的问题…

是的,但我猜你是。erb可以用于js,你可以像“file.js.erb”一样使用它,所以这在我看来不是正确的原因。啊,是的,我在.erb问题上犯了错误。但是看起来js.erb只应该在控制器操作完成后作为js运行。在“视图”文件夹中使用create.js.coffee.erb可能试图将其呈现为模板,但事实并非如此。您是否尝试在资产文件夹中使用它?它是对控制器的操作响应,不属于资产文件夹。还有什么解决方案吗?这种方法如何影响资产管道的小型化?管道是否足够聪明,可以将其编译成javascript并缩小到各种application.js文件中?对我来说,这似乎是一个bug-当然与资产管道中的js.coffee.erb文件不一致(需要将erb作为嵌入式ruby预处理)。也混淆了rubymine