2014-11-25 7 views
2

Я пытаюсь получить свою разбивку на страницы, используя Ajax, используя либо will_paginate, либо kaminari.js.erb не выполняется javascript, но обрабатывается rails

Когда я ударил пагинация связать свой журнал говорит

Processing by Instructor::FullDashboardController#pupil_leads as JS 

и

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

Но JS не имеет никакого эффекта. Таким образом, чтобы проверить это, я написал

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

, пожалуйста, показать полный 'Инструктор :: FullDashboardController'. –

+0

Это немного для этого, вам нужно соответствующее действие? – LpLrich

+0

сообщение 'pupil_leads' action. –

ответ

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

+0

Большое спасибо, я с этим сходил с ума. Один из тех «пожеланий, которые я задал раньше и сэкономил дюжину часов». Еще раз спасибо. – LpLrich

+2

для отладки асинхронного действия используйте вкладку ответов «Chrome/Network», здесь вы всегда можете увидеть, что не так с ответом вашего сервера. –

Смежные вопросы