如果我的问题听起来很完整,我首先道歉,但我在Rails中是全新的,我不确定框架中发生了什么。
我正在阅读一本关于“Ruby on Rails”的书,我只需要在单击按钮时从表中删除一些行。我在assets / javascript / *。js.coffee中添加的JavaScript如下:
if $("#cart").length is 1
$("#cart").hide "blind",
direction: "vertical"
, 1000
$("#cart tr").not(".total_line").remove()
最初的JavaScript(因为我是咖啡新手,我使用在线转换器对其进行转换,我不确定它是否正确):
if ($('#cart').length == 1) { $('#cart').hide("blind", {direction: "vertical" }, 1000); }
$('#cart tr').not('.total_line').remove();
我在控制器的destroy方法中添加了:
format.js {}
现在的方法如下:
def destroy
#@cart = Cart.find(params[:id])
#@cart.destroy
@cart = current_cart
@cart.destroy
session[:cart_id] = nil
respond_to do |format|
#format.html { redirect_to store_url,notice: 'Your cart is currently empty' }
format.js { }
format.html { redirect_to store_url }
format.json { head :no_content }
end
end
但是它给了我以下错误(在点击应该调用js的按钮之后):
缺少模板
缺少模板推车/销毁,应用/销毁 {:locale => [:en] ,: formats => [:js,:html],:handlers => [:erb,:builder, :咖啡]}。搜索:*“/ home / gotqn / Aptana 项目/贮库/应用/视图“
经过一番搜索,我发现了这个问题Template is missing,其中说我需要重定向到我方法中的某个地方。我只是尝试写作:
format.js {head :no_content }
我确实错误不再出现,但JavaScript没有执行。
我真的需要一些帮助解决这个问题。提前谢谢。
答案 0 :(得分:2)
资产不是动态的,它们是在服务器启动时生成的(至少在生产时)。您需要一个包含所需代码的view/carts/destroy.js.erb
模板。如果js本身是静态的,那么您可以使用资产文件在此模板中执行。