Ruby on Rails - format.js {}在哪里重定向?

时间:2012-11-10 10:11:55

标签: ruby-on-rails templates redirect coffeescript format

如果我的问题听起来很完整,我首先道歉,但我在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没有执行。

我真的需要一些帮助解决这个问题。提前谢谢。

1 个答案:

答案 0 :(得分:2)

资产不是动态的,它们是在服务器启动时生成的(至少在生产时)。您需要一个包含所需代码的view/carts/destroy.js.erb模板。如果js本身是静态的,那么您可以使用资产文件在此模板中执行。

相关问题