В настоящее время мы проводим рефакторинг нашего сайта, и мы решили просто использовать одну библиотеку 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