Ruby on rails 为什么Rails不识别*.js.coffee模板?

Ruby on rails 为什么Rails不识别*.js.coffee模板?,ruby-on-rails,ajax,coffeescript,Ruby On Rails,Ajax,Coffeescript,我正在阅读《Rails 5.1下的敏捷Web开发》一书。有一节介绍如何使用Ajax,以便在不重新加载页面的情况下更新“购物车”模型 这是控制器app/controllers/line\u items\u controller.rb: def创建 product=product.find(参数[:product\u id]) @行商品=@cart.add商品(商品) 会话[:计数器]=0 回应待办事项|格式| 如果@line\u item.save format.html{redirect_to

我正在阅读《Rails 5.1下的敏捷Web开发》一书。有一节介绍如何使用Ajax,以便在不重新加载页面的情况下更新“购物车”模型

这是控制器
app/controllers/line\u items\u controller.rb

def创建
product=product.find(参数[:product\u id])
@行商品=@cart.add商品(商品)
会话[:计数器]=0
回应待办事项|格式|
如果@line\u item.save
format.html{redirect_to store_index_url}
format.js{@current\u item=@line\u item}
format.json{render:show,status::created,location:@line_item}
其他的
format.html{render:new}
format.json{render json:@line_item.errors,status::unprocessable_entity}
结束
结束
结束
书中说,上述函数中的
respond\u to
函数将导致执行
create.js.coffee
模板

下面是
app/views/line\u items/create.js.coffee

cart=document.getElementById(“cart”)
cart.innerHTML=“”
最后,将项目添加到购物车的按钮定义如下:


书中说,
remote:true
部分将导致页面无法重新加载

使用名为
create.js.coffee
的文件,购物车不会像应该的那样进行更新。但是,当我将文件重命名为
create.js.erb
时,我确实看到购物车在不重新加载页面的情况下异步刷新。有什么好处

当文件名为
create.js.coffee
时,我收到的日志消息是
找不到LineItemsController的模板#create,rendering head:No_content


当文件名为
create.js.erb
时,我看到模板被找到并呈现出来。

我需要添加
咖啡轨
gem。我不知道为什么我还没有这个-我正在使用Rails 6.0.1。

Rails在默认情况下不再附带Coffeescript。它已经不再流行了,因为ES6具备了CS的大部分特性,而不存在与使用另一种编译成JS的语言编写相关的所有问题。正在进行从所有指南中删除coffescript的工作。