Rails 3.1,JS,Simple Alert没有显示出来

时间:2012-01-24 15:13:16

标签: jquery ruby-on-rails

我对rails和Javascript的体验非常有限。

我正在尝试弹出一个基本的警报功能,以确保一切都处于正常工作状态,但不能正常工作的东西不能正常工作!

加载索引页面时每次都运行此代码:

$(document).ready(function() {
 alert('Welcome to index!');
});

该代码当前位于assets / javascript / default.js

中的文件中

在我的application.html.erb中,我添加了标题

  <%= javascript_include_tag :default %>

并且在索引格式的控制器中我还添加了

format.js { render 'default.js'}

当我在脚本下运行带有firebug的页面时,它确实看到了

<script type="text/javascript" src="/assets/default.js?body=1">

虽然我还没有理解body = 1部分,但是在脚本下它确实显示了代码,所以很明显浏览器可以看到代码然而由于某种原因没有执行它。

在我的宝石中,我有jquery-rails(1.0.19),并且已经运行了bundle install。

我尝试过使用firefox,Internet Explorer和chrome的页面无济于事。如果我已经错过了这样的问题,我会道歉。

我感谢你们所有的时间。

1 个答案:

答案 0 :(得分:2)

在Rails 3.1中,您应该使用'application',而不是'default'

<%= javascript_include_tag :application %>

这将加载app/assets/javascript/application.js文件,它实际上只是一个清单,可以加载所有其他javascript文件,包括jQuery

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
// GO AFTER THE REQUIRES BELOW.
//
//= require jquery
//= require jquery_ujs
//= require_tree .

它加载jQuery,然后require_tree .行加载所有其他javascript文件。

使用你的代码,jQuery永远不会被加载,所以它不理解$函数。