2010-08-19 4 views
3

У меня есть библиотека скриптов, которые я бы хотел реализовать на клиентской стороне моего приложения rails;Включите общедоступную папку javascript в RAILS Views

В представлении я знаю, что могу сделать следующее.

<%= javascript_include_tag 'folder/script.js' %> 
.. 

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

Я знаю, что есть метод, чтобы включить все сценарии в общественности/JavaScript папка

<%= javascript_include_tag :all %> 

Но это будет включать нежелательные сценарии за пределами папки назначения специально для одного вида.

Есть ли способ включать только все сценарии в определенную папку?

Заранее спасибо

ответ

3

Вы можете использовать стандартный javascript_include_tag вместе с методом Dir.glob для включения всех файлов в каталог. Итак, что-то вроде этого должно работать:

<%= javascript_include_tag Dir.chdir(File.join(Rails.root, "public", "javascripts", "your", "subdiretory")) { |d| Dir.glob("*.js") } %> 
1

http://github.com/sbecker/asset_packager

Это связывает все ваши JavaScripts в один файл в производстве и перечисляет их отдельно в развитии. С одной задачей рейка вы определяете все ваши javascripts и таблицы стилей и порядок, который вы хотите сохранить. Другая задача сводит их к двум файлам. Очень круто.

+0

Asset упаковщика (и других подобных Jammit) и лишат комментарии, Minify исходные и т.д. Определенно путь для приложения в производстве. В процессе разработки ваши скрипты загружаются как обычно. –

6

Он построен прямо в рельсах. Использование принятого ответа - плохой стиль. Пожалуйста, используйте следующее:

<%= javascript_include_tag :all, :recursive => true %> 

Использование упаковщиков отлично подходит для производства. Но это правильный способ сделать это в простой, легкой, среде разработки.

+0

Почему это проголосовало? – adu

+0

http://apidock.com/rails/ActionView/Helpers/AssetTagHelper/javascript_include_tag – user1226868

0

следующие работы для меня

def include_folder_javascripts(path) 
    output = [] 
    Dir.chdir(File.join(Rails.root, path)) { |d| 
     output << Dir.glob("*.js").map{|js| javascript_include_tag('calendar_date_select/'+js)}.join 
    } 
    raw output * "\n" 
    end 
Смежные вопросы