0

我正在使用Rails 3.2.6,并且app/assets/javascripts下的application.js文件正在我的 by链接中。在application.js之后<head><%= javascript_include_tag 'application' %>

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

我已经添加了

$(document).ready(function() {
    console.log('doc ready');
})

只是为了测试它是否正常工作,因为在同一目录中创建一个新的 javascript 文件my.js并没有编译到application.js中(这完全是另一个问题)。在我的 javascript 控制台中,我看到一个错误"Uncaught ReferenceError: $ is not defined"。在终端我做了 agem list并且我看到了jquery-rails (3.0.4). 在我的Gemfile 中,我看到gem 'jquery-rails'

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

更新:正如我所说,当我输入gem list终端时,我看到jquery-rails (3.0.4). 但是,当我键入时,bundle install我看到Using jquery-rails (2.1.3). 是否存在某种冲突导致此错误?

4

1 回答 1

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

于 2013-11-08T23:11:37.167 回答