Мой ответ относится к Rails 3.1rc4, я не знаю, работает ли он так же с другими версиями.
Вы можете поместить все операторы require в app / assets / javascripts / application.js, независимо от того,не файлы .js находятся в app / assets / javascripts / или vendor / assets / javascripts /
Примерно так:
// this is in app/assets/javascripts/application.js
//= require modernizr-2.0
//= require jquery
//= require jquery_ujs
//= require jqueryui-1.8.12
//= require jquery.easing-1.3
//= require jquery.noisy
//= require jquery.jslide-1.0
//= require respond
//= require smoke
//= require_tree
Я включил здесь require_tree, потому что у меня есть другие файлы JavaScript дляотдельные контроллеры (pages.js.coffee, users.js.coffee) и общие контроллеры для всего сайта (site.js.coffee)
А пока вот структура файла.
app/
├── assets
│ ├── javascripts
│ │ ├── application.js
│ │ ├── pages.js.coffee
│ │ ├── users.js.coffee
│ │ └── site.js.coffee
│ └── stylesheets
└── plugins
vendor/
├── assets
│ ├── javascripts
│ │ ├── jquery.easing-1.3.js
│ │ ├── jquery.jslide-1.0.js
│ │ ├── jquery.noisy.js
│ │ ├── jqueryui-1.8.12.js
│ │ ├── modernizr-2.0.js
│ │ ├── respond.js
│ │ └── smoke.js
│ └── stylesheets
└── plugins
Это позволяет мне контролировать порядок загрузки библиотек поставщиков (что обычно имеет большое значение) и не беспокоиться о моем внутреннем javascript, где порядок обычно имеет меньшее значение.
Что более важно, я контролирую все операторы require внутриодин часто используемый файл, я считаю, что и безопаснее, и чище.