Rails 6 앱 에 jQuery
자신 을 추가하는 방법에 대한 온라인 리소스를 찾았 지만 rubygems.org gem 내부에있는 jquery 코드에서 요구하는 방법을 찾는 데 어려움이 있었습니다 .
nested_form_fields gem 의 jQuery 코드에서 요구하려고합니다 .
안에 gem을 추가하십시오 Gemfile
.
gem 'nested_form_fields
실행 bundle install
하여 gem을 설치합니다.
app/assets/javascripts/application.js
타사 gem의 jquery 코드에서 요구하려면 다음 줄을 추가하십시오 .
//= require nested_form_fields
그리고 그게 다입니다.
app/javascript/packs/application.js
jquery에서로드 하려면에 다음 줄을 추가하십시오 .
require("jquery")
안에 gem을 추가하십시오 Gemfile
.
gem 'nested_form_fields'
실행 bundle install
하여 gem을 설치합니다.
gem app/javascript/packs/application.js
안에있는 자바 스크립트 코드를 가져 오려면 다음 줄을 추가하세요 nested_form_fields
.
require("nested_form_fields")
내 앱을 부팅하고 웹 검사기를 보면 다음과 같이 표시됩니다.
오류 : 'nested_form_fields'모듈을 찾을 수 없습니다.
원사 내의 패키지가 아니기 yarn
때문에 둘 중 하나 를 통해 작동 할 것이라고 기대하지 않았습니다 nested_form_fields
. 대신 : 나는 단순히 루비 보석 내부 에 존재하는 자바 스크립트 코드를 요구하려고합니다 . 그러나 좋은 측정을 위해 나는 그것을 배제하기 위해 어쨌든 그것을 시도했습니다.
yarn add nested_form_fields
...
=> error An unexpected error occurred: "https://registry.yarnpkg.com/nested_form_fields: Not found".
나는 이것이 내가 간단한 것을 잊은 것들 중 하나가 될 것이라는 것을 알고 있지만 나는 이것을 한동안 해왔고 다른 한 쌍의 눈이 그것을 빨리 잡을 수있을 것입니다.
의 디자인은 Rails 6
개발자 asset pipeline
를 webpack
. 이는 자바 스크립트가 포함 된 레일에서 사용되는 gem을 업데이트해야 할 가능성이 있음을 의미합니다.
npm
저장소에 별도로 존재 합니다. 나는 전문가는 아니지만 이것이 아이디어라고 믿습니다.내 솔루션은 본질적으로 동일한 중첩 양식 처리 동작을 제공하는 cocoon에 대해 nested_form_fields 를 교체하는 것 입니다 .
재미있는 것은 즉 cocoon
과 똑같은 처지에있다 nested_form_fields
. 그러나, cocoon
더 인기가 있고 마찬가지로이 퍼즐을 해결하는 가장 좋은 방법을 찾는 더 많은 커뮤니티가 있습니다. 이슈 # 555 는이 특정 문제를 포착합니다.
결국 나는 이 주석에 설명 된 임시 작업을 구현하기로 결정했습니다 . 본질적으로 내가 한 일은 cocoon
gem 의 jQuery 코드 를 내 레일 앱에 복사 / 붙여 넣기 한 다음 해당 코드를 webpack
.
고치를 추가하십시오 Gemfile
gem "cocoon"
실행 bundle install
하여 gem을 설치하십시오.
cocoon
여기 에있는 자바 스크립트 코드를 다음 위치 의 새 파일에 복사하여 붙여 넣으십시오 .app/javascript/src/cocoon.js
다음 두 줄을 javascript/packs/application.js
. Cocoon은 jquery에 의존하므로이를 필요로하고, 물론 # 3 단계에서 복사 / 붙여 넣기 한 cocoon javascript에서 필요합니다.
require("jquery")
require("src/cocoon.js")
이것이 제가 아는 최고의 임시 전략입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다