js.erb没有执行javascript但是处理了rails

时间:2014-11-25 12:20:53

标签: javascript jquery ruby-on-rails ruby

我正在尝试使用will_paginate或kaminari使用Ajax进行分页。

当我点击分页链接时,我的日志显示

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

Ruby 2.1

Full Dash Controller

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

1 个答案:

答案 0 :(得分:19)

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)。