我首先很抱歉,如果我的問題聽起來很完整,但我在Rails中是全新的,我不確定框架中發生了什麼。Ruby on Rails - format.js {}重定向的位置?
我正在讀一本關於「Ruby on Rails」的書,我只需要點擊按鈕時從表中刪除一些行。該JavaScript的我已經在資產/ JavaScript的添加/ * js.coffee如下:
if $("#cart").length is 1
$("#cart").hide "blind",
direction: "vertical"
, 1000
$("#cart tr").not(".total_line").remove()
原來的JavaScript(因爲我是新來的咖啡JS我使用了一個在線轉換器進行改造,而且我不知道這是否是正確的):
if ($('#cart').length == 1) { $('#cart').hide("blind", {direction: "vertical" }, 1000); }
$('#cart tr').not('.total_line').remove();
我已經在控制器的銷燬方法添加:
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, :coffee]}。搜查:*「/家/ gotqn /集錦 項目/庫/應用/視圖」
一些搜索後,我發現這個問題Template is missing其中有人說,我需要重定向到某個地方在我的方法。我只是試着寫:
format.js {head :no_content }
我真的沒有再次出現錯誤,但JavaScript沒有執行。
我真的需要一些幫助解決這個問題。提前致謝。
但是,渲染視圖時不會在資產文件夾中設置JavaScript嗎?或者JavaScript被呈現,但是元素不被創建,我應該用on()函數? – gotqn
缺少模板不會呈現任何內容。如果您創建模板,則可以包含要執行的資產。資產管道只是生成一個靜態js文件,但它不會自動包含在任何地方,您需要這樣做。 – Matzi
因此,通過模板,你的意思是視圖/ carts/destroy.js.erb並且在其中我應該放入我的JavaScript? – gotqn