2011-11-07 66 views
2

我已经通过将简单的script标签放置在我的home.html.erb文件底部的jQuery测试了我的Rails应用程序的功能。一切工作正常,直到我试图利用资产Pipleine对Rails 3.1和地点内app/javascripts/home.js.erbRails 3.1中的Javascript文件资产管道

任何脚本知道为什么我不能得到的JavaScript到home.html.erb文件外工作

回答

0

至于我正在寻找做什么,这是不同的意见单独的JavaScript文件,我没有成功。我尝试了不同的命名约定等。

但是,对我有效的是,将所有的javascript放在application.js之内。这样做可以使整个应用程序的每个视图都可以访问这些代码。根据您的需求和您的应用程序,您可能希望将脚本放在[your-model-name].js.coffee之内,这将使其可访问(我认为只是针对您的特定控制器和视图)。由于我的应用程序是单个模型/控制器设置,这基本上是一样的。

然后,这是一个慎重使用选择器的问题,以免无意中干扰其他页面。换句话说,如果你想让一段代码在一个特定的视图中运行,而不是另一个,你将不得不相应地调整你的.js代码,因为application.js中的所有内容都可以被所有视图访问。

0

你可以在application.html.erb中添加脚本标记,并且在所有页面中都会有jquery。 你可以通过这种方式添加脚本:(你应该添加jQuery的1.7.min文件夹的应用程序/ JavaScript的)

<%= javascript_include_tag 'jquery-1.7.min'%> 
+0

这不是一个在应用程序上使用jquery的问题,我主要讨论在哪里放置我的自定义jQuery脚本......这有道理吗?因为(我认为)jQuery在所有rails 3.1应用程序中自动加载,对吗? – pruett

+0

看看这个链接,http://guides.rubyonrails.org/asset_pipeline.html。脚本的可见性取决于您放置的位置。 lib /资产,应用程序/资产或供应商/资产 – JAiro

+0

即时通讯相当肯定清单文件行'// = require_tree .'在目录中添加所有javascript文件 – pruett

0

不要把home.js.erb应用程序/ JavaScript的home.js.erb提取您的jQuery和投入应用程序/资产/ Java脚本/ home.js

添加config.assets.precompile + =%W(* .js文件)config/environments/product ion.rb的config/application.rb中全球ENV(测试/开发/生产)

应用程序/资产/ Java脚本/ application.js中

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

调用它与javascript_include_tag从视图

...最后“应用”,不要忘记宝石“jQuery的轨道”添加到您的Gemfile并运行捆绑

+0

感谢您的建议...我会试试这个。 – pruett