добавление к content_for в рельсах - PullRequest
1 голос
/ 24 августа 2010

В настоящее время мы проводим рефакторинг нашего сайта, и мы решили просто использовать одну библиотеку js (jquery).Проблема в том, что из-за нехватки времени мы можем сделать только так много, поэтому в настоящее время мы должны заставить их сосуществовать.

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

<%= javascript_include_tag "jquery" %>

<%= yield :jquery %>

<%= javascript_include_tag "prototype", "effects", "dragdrop", "controls", "lowpro", "neo", "filter", "slider", "calendar", "application", 'alerts'  %>

Затем я просто вызываю content_for (: jquery) всякий раз, когда мне нужно добавить конкретный файл jquery js (в нем есть функция без конфликта) начастичное, что нуждается в этом.Так что никаких проблем нет.

Проблема в том, что вы включаете 2 партиала с разными файлами jquery.Вызывается только один из них, поскольку jQuery для content_for уже вызван, он больше не будет вызываться (скажем, в a.rhtml я добавил a.js, а в b.rhtml я добавил b.js, только a.js).будет включен)

Одним из решений было бы просто включить все в один основной js-файл, но это было бы трудно поддерживать, так как каждая функция существует и т. д. Есть ли способ, чтобы я мог просто добавить к content_for, когда онуже был вызван?

Я только что проверил API:

http://apidock.com/rails/v2.3.8/ActionView/Helpers/CaptureHelper/content_for

кажется, что content_ для фактически APPENDS.Но то, что происходит с моим, это просто не добавляет / не убирает.Он просто полностью игнорирует второй вызов content_for

1 Ответ

1 голос
/ 24 августа 2010

Выезд Джеммит .Вы просто определяете свои различные наборы файлов в assets.yml, а затем Jammit упаковывает их и генерирует уменьшенные и сжатые версии этих файлов для развертывания.Он очень прост в использовании, и вы можете сохранить функциональность в нескольких файлах, а затем просто позволить Jammit упаковать его.Это также повышает скорость рендеринга вашего клиента, так как снижает издержки HTTP-соединения и позволяет легко кэшировать этот единственный мастер-файл, что приводит к быстрому взаимодействию с пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...