Новичок Rails 3.1: куда мне поместить код javascript?

#ruby-on-rails-3.1

#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/ и vernordor/assets/, и есть application.js в приложении / активах я хотел быспросите:

  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/?? Я прав?

Ответ №1:

Поместите свой собственный 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 в конвейер ресурсов для вас, поэтому вам не нужно беспокоиться о загрузке их вручную.

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

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


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

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

Комментарии:

1. @ Alex, ты все еще меня путаешь, я спрашиваю о месте, куда поместить стороннюю библиотеку и куда поместить мой собственный файл js. И я также смущен использованием и значением application.js . Является ли require_tree в application.js используется для включения сторонних библиотек в app / vendor / assets / javascript и требует «чего-то» в application.js используется для включения js-файла в app / assets / javascripts?? Я прав?

2. Чтобы включить файл, который находится в вашем конвейере ресурсов, вы должны ссылаться на него в правильном порядке в вашем application.js . Ваш собственный javascript исключается, если вы вставляете его app/assets/javascripts и используете require_tree . в своем application.js который хранится в этом месте.

3. файлы jQuery поступают из gem 'jquery-rails'

4. Обратите внимание, что если вы используете jquery-ui gem И добавляете jquery-ui скрипт вручную, это вызовет проблемы. Лучше всего придерживаться самого gem.

Ответ №2:

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