현재 사이트 리팩토링 중입니다. 우리는 하나의 js 라이브러리 (jquery)를 사용하기로 결정했습니다. 문제는 시간 제약 때문에, 우리는 지금 그렇게 많이 할 수밖에 없다. 우리는 그것들을 공존시켜야한다.레일에 content_for를 추가합니다.
우리가 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 파일을 추가해야합니다. 그래서 문제 없습니다.
다른 jquery 파일에 2 개의 부분을 포함 할 때 문제가 발생합니다. content_for jquery가 이미 호출되었으므로 그 중 하나만 호출됩니다. 더 이상 호출되지 않습니다. 그래서 a.rhtml에서 a.js를 추가하고 b.rhtml에서 b.js를 추가하고 a.js 만 추가하면됩니다. 포함될 것입니다)
하나의 솔루션은 하나의 마스터 js 파일에 모든 것을 포함시키는 것이지만 모든 기능이 있기 때문에 유지하기가 어려울 것입니다. 이미있을 때 content_for에 추가 할 수있는 방법이 있습니까? 불려 왔습니까? 이 content_for 보인다
http://apidock.com/rails/v2.3.8/ActionView/Helpers/CaptureHelper/content_for
실제로 추가 :
난 그냥 API를 확인. 하지만 내 일은 단지 추가/삭제하지 않는다는 것입니다. 두 번째 content_for 통화를 완전히 무시합니다.
흠, 우리는 이미 bundle-fu를 가지고 있습니다. (현재는 작동하지 않습니다.) 문제는 프로토 타입을 호출하기 전에 jquery 파일을 포함해야한다는 것입니다. 따라서 $ 변수를 반환 할 수 있습니다. 따라서 yield – corroded
또한'var $ j = jQuery.noConflict()'를 사용할 수 있고 jquery에'$ j'를 사용할 수 있습니다. 그리고 prototype은'$'로 작업을 계속합니다. 그렇게하면 나란히 사용할 수 있습니다. – nathanvda
요점은 Jammit의 자산을 사용하는 경우 모든 Javascript 자산을 고정 된 순서로 패키지화하고 이에 대해 걱정하지 않을 수 있다는 것입니다. :) –