Файлы Javascript в Rails 3.1 Asset Pipeline - PullRequest
2 голосов
/ 08 ноября 2011

Я проверил функциональность моего приложения на Rails, поместив jQuery внизу моего home.html.erb файла с простыми тегами script.Все работает нормально, пока я не попытаюсь использовать Asset Pipleine в Rails 3.1 и поместить скрипт в app/javascripts/home.js.erb

Кто-нибудь знает, почему я не могу заставить javascript работать вне файла home.html.erb

Ответы [ 3 ]

0 голосов
/ 10 ноября 2011

Не помещайте home.js.erb в app / javascripts , но извлеките jquery из home.js.erb и вставьте app / assets / javascripts / home.js

добавить config.assets.precompile + =% w (* .js) в config / environment / production.rb или в config / application.rb для глобального env (test / dev / prod)

, чем в app / assets / javascripts / application.js

//= require jquery
//= require jquery_ujs
//= require_self
//= require_tree .

вызовите его с помощью javascript_include_tag "application" из представления

... и, наконец, не забудьте добавить gem 'jquery- рельсов к вашему Gemfile и запуску связки

0 голосов
/ 19 ноября 2011

Что касается того, что я искал, то есть отдельных файлов javascript для разных представлений, я потерпел неудачу.Я пробовал разные соглашения об именах и т. Д.

Однако для меня сработало размещение всего моего javascript в пределах application.js.Это делает этот код доступным для каждого представления во всем приложении.В зависимости от ваших потребностей и вашего приложения, вы можете поместить скрипт в [your-model-name].js.coffee, что сделает его доступным (я думаю, только для ваших конкретных контроллеров и представлений).Так как мое приложение представляет собой одну модель / настройку контроллера, это, по сути, одно и то же.

Затем необходимо аккуратно использовать селекторы, чтобы не мешать другим страницам непреднамеренно.Другими словами, если вы хотите, чтобы часть кода выполнялась в одном конкретном представлении, а не в другом, вам придется соответствующим образом настроить свой код .js, поскольку все в application.js доступно для всех представлений.

0 голосов
/ 08 ноября 2011

Вы можете добавить тег script в application.html.erb, и у вас будет jquery на всех ваших страницах.Вы можете добавить скрипт следующим образом: (вы должны добавить файл jquery-1.7.min в папку app / javascript)

    <%= javascript_include_tag 'jquery-1.7.min'%> 
...