jQuery没有在Rails 3.2.6应用程序中加载

时间:2013-11-08 23:03:35

标签: javascript jquery ruby-on-rails ruby ruby-on-rails-3.2

我正在使用 Rails 3.2.6 ,而 app / assets / javascripts 下的 application.js 文件正在{{ 1}} <head>。在 application.js 之后

<%= javascript_include_tag 'application' %>

我添加了

//= require jquery
//= require jquery_ujs
//= require_tree .

只是为了测试它是否有效,因为在同一目录中创建一个新的javascript文件 my.js 并没有编译成 application.js (这是一个完整的问题完全)。在我的javascript控制台中,我看到错误“未捕获的ReferenceError:$未定义”。在终端我做了一个$(document).ready(function() { console.log('doc ready'); }) ,我看到gem list。在我的 Gemfile 中,我看到 gem'jquery-rails'

为什么jQuery没有正确加载到我的应用程序中?

更新正如我所说,当我在终端中输入jquery-rails (3.0.4)时,我会看到gem list。但是,当我输入jquery-rails (3.0.4)时,我会看到bundle install。是否会出现某种导致此错误的冲突?

1 个答案:

答案 0 :(得分:0)

您的资产管道是否已停用?如果是,则需要运行rake任务来安装jQuery。

从jquery-rails GitHub页面:

Rails 3.1或更高版本(已启用资产管道)

jquery和jquery-ujs文件将添加到资产管道中,供您使用。如果默认情况下它们还没有在app / assets / javascripts / application.js中,请添加以下行:

//= require jquery
//= require jquery_ujs

对于jQuery UI,我们推荐使用jquery-ui-rails gem,因为它包含jquery-ui css并允许更容易的自定义。这个gem仍然打包jQuery UI javascript以实现兼容性。要使用它,请将以下行添加到application.js:

//= require jquery-ui

为了使用jQuery UI的主题部分,您还需要提供自己的主题CSS(或使用上面提到的jquery-ui-rails gem)。

Rails 3.0(或更高版本,禁用资产管道)

这个gem添加了一个生成器:jquery:install。运行生成器将删除您可能碰巧遇到的任何Prototype JS文件,并将jQuery和Rails的jQuery-ujs驱动程序(以及可选的jQuery UI)复制到public / javascripts目录。

这个gem还将挂钩到Rails配置过程,删除Prototype并将jQuery添加到javascript_include_tag(:defaults)调用所包含的javascript文件中。虽然这个gem包含jQuery和jQuery UI的缩小版和非缩小版,但只有缩小版本包含在:defaults。

要调用生成器,请运行:

rails generate jquery:install #--ui to enable jQuery UI

你已经完成了!

文档:https://github.com/indirect/jquery-rails