Добавляете код JQuery или Javascript (не coffee.script) в приложение Rails 3.2?

Я только что закончил вводный курс Code School по JQuery, jQuery Air: Первый полет. Это был отличный способ изучить основы jQuery, и когда я закончил, я был в восторге от добавления jQuery в мое новое маленькое приложение для рельсов 3.2. Однако как это сделать, не очевидно.

По умолчанию rails 3.2 поставляется с гемами jquery-rails и coffee-rails. Все новые приложения 3.2 настроены на прием javascript и jquery в виде coffee-script. Хотя я скоро изучу coffee-script, сейчас все, что у меня есть, это jquery.

В частности, я должен добавить что-то вроде:

<script type="text/javasript" src= "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

в заголовок моего файла app/views/layouts/application.html.erb или это все, что нужно для jquery-rails gem и

<%= javascript_include_tag "application" %>

уже здесь?

Где в моем приложении я могу поместить код jQuery? С каждым новым контроллером, который я генерирую, rails 3.2 создает хороший файл [new_controller].js.coffee в каталоге app/assets/javascripts/. Javascript не работает, если я помещаю его в этот файл .coffee. У кого-нибудь есть мысли?


person BenU    schedule 07.07.2012    source источник


Ответы (3)


Поэкспериментировав и переписавшись с хорошими людьми из Code School, я пришел к следующему ответу, который может оказаться полезным для других:

Приложения Rails 3.2 готовы принимать coffeescript. Действительно, каждый новый контроллер автоматически генерирует файл [new_controller].js.coffee, готовый принять ваш новый coffeescript. Хотя я скоро перейду к coffeescript, только что закончив JQuery Air: First Flight, все Я знаю, что это jQuery.

Вот что нужно сделать, чтобы добавить jQuery в свое приложение Rails 3.2 с настройками конвейера ресурсов по умолчанию:

1) Поместите javascript_include_tag(:application) в файл app/views/layouts/application.html.erb. Адам Фортуна из Code School отмечает, что обычно помещают эту строку в нижний колонтитул, что звучит как хороший совет. Это, вероятно, позволяет остальной части страницы загружаться до javascript.

2) В каталоге app/assets/javascripts/ создайте новый файл с суффиксом .js, который в моем случае был user.js. Примечание. Не называйте файл jQuery так же, как автоматически созданный файл .js.coffee, иначе он не будет прочитан, возможно, потому, что будет прочитан только файл coffeescript.

3) Добавьте свой javascript jQuery в этот файл, сколько душе угодно! Это уже часть вашего приложения 3.2, включенная в гем jquery-rails.

Если у других есть понимание использования jquery и javascript вместо coffee-script в приложении rails 3.2, пожалуйста, добавьте. Тем не менее, мой следующий шаг — изучить coffee-script!

person BenU    schedule 07.07.2012

Вам не нужно ничего делать. Rails по умолчанию предоставит вам jquery. если расширение вашего файла не кофе, вам не нужно использовать coffeescript.

Вы можете прочитать это, чтобы лучше понять магию.

Если вы должны добавить свой собственный, вы можете написать что-то вроде этого:

<%= javascript_include_tag "http://example.com/main.js" %>

Прочитайте это, чтобы понять, как работает javascript_include_tag.

person davidrac    schedule 07.07.2012
comment
Боже мой, сообщество SO быстро! За 9 минут, которые мне понадобились, чтобы ответить на мой собственный вопрос — я провел более дня, работая со службой поддержки codeschool — 3 человека тоже ответили на этот вопрос! Большое спасибо. Теперь я лучше понимаю. В следующий раз я начну с SO. - person BenU; 07.07.2012

Убедитесь, что //= require jquery находится в верхней части application.js или application.js.coffee, и вам должно быть хорошо, если у вас установлен гем jquery-rails.

person Mab879    schedule 07.07.2012