Rails 3.1 новичок: где я должен положить код JavaScript? - PullRequest
9 голосов
/ 14 октября 2011

Я занимаюсь разработкой Rails 3.1 приложения, я запутался в том, куда мне поместить собственный код JavaScript (например, my.js ) и где разместить стороннюю библиотеку JavaScript ( например, jQuery-UI ).

Я знаю, что в старой версии Rails все javascript должны входить в каталог public / javascripts / , когда я генерирую приложение Rails 3.1, папка public / javascripts / отсутствует, но есть app / assets / и verndor / assets / и есть application.js в app / assets , я хотел бы спросить:

  1. в Rails 3.1, куда мне положить my.js и jQuery-UI js в Rails 3.1 ??
  2. что должен делать app / assets / application.js ?
  3. как я могу включить my.js и jQuery-UI js в мою html-страницу?

---------------- Я прав? ----------

Является require_tree в application.js * , используется для включения сторонних библиотек в app / vendor / assets / javascript /

и require "something" в application.js используется для включения файла js в app / assets / javascripts / ?? Я прав?

Ответы [ 2 ]

7 голосов
/ 14 октября 2011

Поместите свой собственный javascript & coffeescript в app/assets/javascripts.

Загляните внутрь app/assets/javascripts/application.js. Когда вы запустили rails new APP, он должен был добавить //= require_tree . к этому файлу. Подробнее см. В разделе 2.3 .

Это специальная инструкция, которую Sprockets понимает, что автоматически включит все файлы в тот же каталог, что и ваш файл application.js, и в подпапках под ним.

Если вы хотите, чтобы jquery и jquery-ui загружались, ваш файл application.js должен выглядеть как

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

Если у вас есть gem 'jquery-rails' в вашем комплекте, этот драгоценный камень уже добавил файлы jquery в конвейер ресурсов для вас, так что вам не нужно беспокоиться о том, чтобы загружать их вручную .

В разделе заголовка вашего представления приложения вы захотите включить javascript_include_tag "application" в раздел заголовка. Скорее всего, если вы использовали генератор, он уже есть.

Пожалуйста, ознакомьтесь с Rails Asset Pipeline для получения дополнительной информации.


. в строке с require_tree указывает на местоположение текущего файла. Оператор //= ссылается на конвейер активов.

Размещение файла в app / assets, lib / assets или vendor / assets добавит его в конвейер ресурсов. См. Раздел 2.1 .

5 голосов
/ 15 октября 2011

Райан Бейтс имеет хороший обзор конвейера активов на Railscasts. Это помогло мне, когда я пытался разобраться. http://railscasts.com/episodes/279-understanding-the-asset-pipeline

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...