Ruby on Rails项目不承认jQuery

时间:2014-11-23 18:54:00

标签: jquery ruby-on-rails ruby

我有一个项目需要在我的javascript文件中使用jQuery。我收到错误告诉我'参考错误:$未定义。'当我从一行代码

加载我的页面时
$(window).load(function()

完整功能位于下方的play.html.erb代码段中。我相信这是一个jQuery错误。

我正在使用Ruby 2.1.2p95和Rails 4.1.6。

我已经就如何让jQuery工作做了一些研究,但没有任何帮助。我查看了Installing jQuery in Rails 3.2.13

我尝试将<%= javascript_include_tag "//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" %>放入我的html.erb文件中,该文件包含我试图在jquery中使用的javascript文件

我也试过将<%= javascript_include_tag :application %>放在那里。

有建议将整个文件放在我的app / assets / javascript中,所以我下载了jquery-2.1.1.min,js并将其放在那里,并将<%= javascript_include_tag "jquery-2.1.1.min" %>放在html.erb文件中并将Rails.application.config.assets.precompile += %w( jquery-2.1.1.min.js )放入我的assets.rb并通过终端预编译我的资产。

我已将gem 'jquery-rails'放入我的gemfile中。

我也试过https://rubygems.org/gems/jquery-rails

上的2个方向

我的application.js

中有正常指定的要求

在我尝试的所有内容之后运行bundle install以防万一。

play.js

$(window).load(function()
{
    var c = document.getElementById("charhealthbar");
    var ctx = c.getContext("2d");
    var health = 5;
    ctx.fillStyle = "#FF0000";
    ctx.fillRect(0, 0, (health / 100) * 140, 25);
});

assets.rb

 Rails.application.config.assets.version = '1.0'   
 Rails.application.config.assets.precompile += %w( creation.css )
 Rails.application.config.assets.precompile += %w( Main.css )
 Rails.application.config.assets.precompile += %w( creation.js )
 Rails.application.config.assets.precompile += %w( play.css)
 Rails.application.config.assets.precompile += %w( play.js )
 Rails.application.config.assets.precompile += %w( jquery-2.1.1.min.js )

play.html.erb

  <%= stylesheet_link_tag "Main.css" %>
  <%= stylesheet_link_tag "play.css" %>
  <%= javascript_include_tag "play" %>
  <%= javascript_include_tag :application %>
  <%= javascript_include_tag "jquery-2.1.1.min" %>

的application.js

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

的Gemfile

source 'https://rubygems.org'
gem 'rails', '4.1.6'
gem 'pg'
gem 'sass-rails', '~> 4.0.3'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.0.0'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0',          group: :doc
gem 'spring',        group: :development
gem 'jquery-rails'

我目前还在我的app / assets / javascripts文件夹中有jquery-2.1.1.min.js。 任何有关修复此错误的帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

您应该在"play"的包含标记之后添加jquery 的包含标记:

  <%= stylesheet_link_tag "Main.css" %>
  <%= stylesheet_link_tag "play.css" %>
  <%= javascript_include_tag "jquery-2.1.1.min" %>
  <%= javascript_include_tag :application %>
  <%= javascript_include_tag "play" %>