загрузка скриптов в определенном порядке в приложении rails. как это сделать?

#ruby-on-rails

#ruby-on-rails

Вопрос:

Я заметил, что некоторые эффекты jquery требуют, чтобы скрипты загружались в правильном порядке .. в моем случае это работает, если они загружаются следующим образом:

 jquery 1.4.4
jquery-ui-1.8.16.custom.min.js
autocomplete-rails.js
jquery.cycle.all.js
....
  

если они загружаются по-другому, то некоторые из моих функций анимации или jquery не работают. Итак, как мне указать в rails, какой скрипт загружать первым?
Прямо сейчас я сделал это примитивным способом, добавив 1 2 3 числа перед именами каждого скрипта, который у меня есть, в порядке, который мне нужен, в результате чего:

 1jquery 1.4.4
2jquery-ui-1.8.16.custom.min.js
3autocomplete-rails.js
4jquery.cycle.all.js
  

Это примитивно, но работает. Есть ли другой способ сделать это?

Rails 3

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

1. Какую версию Rails вы используете?

2. Я не понимаю … ваш первый пример работает? Они должны загружаться в том порядке, в котором вы указываете, точно так же, как в вашем первом примере.

3. нет, в первом примере я указал, в каком порядке они мне нужны для загрузки, а во втором я просто показываю, как я заставляю их загружать в этом порядке, но я хочу знать, есть ли какой-либо более цивилизованный способ сделать это. Спасибо

4. Какая версия Rails 3? Ответ может сильно отличаться между Rails 3.0 и 3.1. Для 3.1 простое включение их javascript_include_tag в надлежащем порядке будет работать нормально. В rails 3.1, поскольку все объединено в один JS-файл, это не должно иметь значения, однако я не совсем уверен в этом.

5. Исправление: Rails 3.0 для javascript_include_tag примера.

Ответ №1:

Для Rails 3.0:

javascript_include_tag принимает массив источников и включает их в том порядке, который вы определяете. Вы можете опустить :defaults или определить его в своем application.rb файле с config.action_view.javascript_expansions[:defaults] = %w(foo.js bar.js) помощью . :all включает все javascripts в вашей папке /javascripts/ .

Поэтому лучше всего использовать jQuery в начале, поскольку большинство или все ваши файлы javascript будут использовать jQuery.

Дополнительная документация: http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/JavascriptTagHelpers/javascript_include_tag