我对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的页面无济于事。如果我已经错过了这样的问题,我会道歉。
我感谢你们所有的时间。
答案 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永远不会被加载,所以它不理解$
函数。