2014-11-25 45 views
2

我試圖讓我的分頁與Ajax一起使用,使用will_paginate或kaminari。js.erb不執行JavaScript,但被處理軌道

當我打分頁鏈接我的日誌說

Processing by Instructor::FullDashboardController#pupil_leads as JS 

Rendered instructor/full_dashboard/pupil_leads.js.erb within layouts/main (0.1ms) 

但爵士沒有任何影響。因此,爲了測試它,我寫

console.log("Hello"); 
<%logger.debug "This is the js file"%> 
alert('Hello Rails'); 

在js.erb文件中,在我的日誌我看到This is the js file如預期,但並沒有什麼在JS控制檯在我的瀏覽器和警報不顯示。所以我知道該文件正在處理,因爲我的logger.debug工作,但沒有js。

如何進一步排除故障?

的Rails 4.1

紅寶石2.1

昂昂控制器

class Instructor::FullDashboardController < ApplicationController 
    layout 'main' 
... 
    def pupil_leads 
    @ivar = Model.where("something = ?", some_object.id).order("created_at desc").page(params[:page]).per(10) 
    respond_to do |f| 
     f.js { render :content_type => 'text/javascript' } 
     f.html 
    end 
    end 
+0

請顯示完整'Instructor :: FullDashboardController'。 – 2014-11-25 12:23:24

+0

這是有點長,你想要相關的行動? – LpLrich 2014-11-25 12:23:51

+0

發佈'pupil_leads'動作。 – 2014-11-25 12:24:30

回答

15

添加layout: false選項來渲染塊:

def pupil_leads 
    # some code here 
    respond_to do |f| 
    f.js { render layout: false, content_type: 'text/javascript' } 
    f.html 
    end 
end 

出於某種原因Rails的不承認要求爲xhr,我還看到,視圖擴展名(.erb.html.slim)必須全部指定。

+1

謝謝。你可能會給出一個簡短的解釋,爲什麼這是必要的?僅供參考。 – LpLrich 2014-11-25 12:30:44

+0

非常感謝,我對此感到非常瘋狂。其中一個「希望我早點問過,並節省了十幾個小時」。再次感謝。 – LpLrich 2014-11-25 12:34:07

+2

調試異步操作使用'Chrome/Network'響應選項卡,在這裏你總是可以看到你的服務器響應有什麼問題。 – 2014-11-25 12:35:44