Rails 3.1新手:我应该把javascript代码放在哪里?

时间:2011-10-14 06:05:27

标签: ruby-on-rails-3.1

我正在开发 Rails 3.1 应用程序,我很困惑我应该在哪里放置自己的javascript代码(例如 my.js )以及在哪里放置第三方javascript库(例如 jQuery-UI )。

我知道在旧版本的Rails中,javascript应该全部进入 public / javascripts / 目录,当我生成Rails 3.1应用程序时,没有 public / javascripts / 文件夹,但 app / assets / verndor / assets / app / assets中有 application.js ,我想问一下:

  1. 在Rails 3.1中,我应该在Rails 3.1中放置 my.js jQuery-UI js
  2. app / assets / application.js 应该做什么?
  3. 如何在html页面中加入 my.js jQuery-UI js
  4. ----------------我是对的吗?----------

    application.js中的require_tree 用于包含 app / vendor / assets / javascript /

    下的第三方库

    application.js 中的require "something"用于在 app / assets / javascripts / 下包含js文件?我是对的吗?

2 个答案:

答案 0 :(得分:7)

放置自己的javascript& app/assets/javascripts下的coffeescript。

查看app/assets/javascripts/application.js内部。当您运行rails new APP时,它应该已将//= require_tree .添加到此文件中。 See section 2.3 for more

这是Sprockets理解的特殊说明,它会自动包含与application.js文件位于同一目录中的所有文件及其下方的子文件夹。

如果你想加载jquery和jquery-ui,你的application.js文件看起来应该是

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_tree .

如果您的捆绑包中有gem 'jquery-rails',则此gem已经将jquery文件添加到资产管道中,因此您不必担心手动下载它们

在应用程序视图的head部分中,您需要在head部分中包含javascript_include_tag "application"。如果您使用发电机,那么机会已经存在。

请阅读Rails Asset Pipeline了解详情。


.行中的require_tree引用了当前文件的位置。 //=运算符正在引用资产管道。

将文件放在app / assets,lib / assets或vendor / assets中会将其添加到资产管道中。 See section 2.1

答案 1 :(得分:5)

Ryan Bates对Railscasts上的资产管道有一个很好的概述。当我试图解决它时,它帮助了我。 http://railscasts.com/episodes/279-understanding-the-asset-pipeline