[RUBY-ON-RAILS] 자바 스크립트 자산 내에서 레일 도우미 방법을 사용하여
RUBY-ON-RAILS자바 스크립트 자산 내에서 레일 도우미 방법을 사용하여
레일 도우미 방법을 사용하려면 어떤 방법이 있나요, 더 구체적으로, 자바 스크립트 자산 파일 내의 경로 도우미 방법. 이 파일 foo.js.coffee.erb
$('#bar').val("<%= create_post_path %>")
내가 erubis에서 얻을 수 있다면 나는 그것을 사랑
$('#bar').val("path/to/create")
해결법
-
==============================
1.당신은 ERB 템플릿에있는 도우미 / 모듈 / 클래스를 포함 할 수 있습니다 :
당신은 ERB 템플릿에있는 도우미 / 모듈 / 클래스를 포함 할 수 있습니다 :
<% environment.context_class.instance_eval { include MyHelper } %>
참조 : https://github.com/rails/sprockets/blob/master/lib/sprockets/environment.rb 및 https://github.com/rails/sprockets/blob/master/lib/sprockets/context.rb
당신이 당신의 특정 응용 프로그램 '헬퍼를 포함해야하는 URL 헬퍼를 사용합니다.
그들은 너무 Rails.application.routes.url_helpers에서 구할 수 있습니다 :
<% environment.context_class.instance_eval { include Rails.application.routes.url_helpers } %>
편집 : 이동 톱니에 대한 고정 링크 REPO하지만 정말 확실이 여전히 많은 년 후에 의미가 있습니다.
-
==============================
2.이것은 또한 초기화에 트릭을 할 것입니다 :
이것은 또한 초기화에 트릭을 할 것입니다 :
Sprockets::Context.send :include, MyHelper
개발 모드에서 도우미는 모든 요청에 다시로드되지 않습니다.
당신이 (... 음 ... 우리는 우리가 ... 컴파일시에해야합니다 후 어떤 ID를 모르는) post_path을 찾아야 할 때까지 UrlHelpers와 귀하의 접근 방식은 작동합니다. 자바 스크립트에서 레일 UrlHelpers을 모두 재 구현 된 루비 보석이 있습니다 : https://github.com/railsware/js-routes
-
==============================
3.당신이하고 싶은 이유는, 아주 확실하지 않다.
당신이하고 싶은 이유는, 아주 확실하지 않다.
내가보기에 당신의 대상 경로를 제공하여 멀리 추상적에 문제가 당신을 조언하고 특정 이벤트가 발생할 때 DOM 요소에서 값을 검색 할 수있는 경우. 그냥 레일을위한 '겸손한 스크립팅 어댑터'좋아해요. 예컨대 : https://github.com/rails/jquery-ujs/blob/master/src/rails.js#L157-173
-
==============================
4.사실 나는 @eirc의 대답 (계정 톱니 문서에 복용)을 동의합니다. 그러나 나는 것 레일 부팅시 도우미 모듈을 포함하여 고려하십시오. 따라
사실 나는 @eirc의 대답 (계정 톱니 문서에 복용)을 동의합니다. 그러나 나는 것 레일 부팅시 도우미 모듈을 포함하여 고려하십시오. 따라
# config/initializers/sprockets.rb Rails.application.assets.context_class.instance_eval do include ActionView::Helpers include Rails.application.routes.url_helpers include MyModule end
이 때문에의는 다음과 같습니다 https://github.com/rails/sprockets-rails/blob/master/lib/sprockets/railtie.rb#L23
-
==============================
5.사실,이 도움이되지만 레이크 프리 D 파일 중에 사용하기 위해 자신의 헬퍼를 정의하는 방법이 확실하지 경우
사실,이 도움이되지만 레이크 프리 D 파일 중에 사용하기 위해 자신의 헬퍼를 정의하는 방법이 확실하지 경우
새로운 초기화를 만들고이를 넣어 :
module Sprockets module Helpers module RailsHelper def my_helper_method ... end end end end
그리고 당신은 할 수 있습니다 :
<%= my_helper_method %>
당신의 .erb 자산
from https://stackoverflow.com/questions/7451517/using-a-rails-helper-method-within-a-javascript-asset by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 한 번에 사용자 당 고안 제한 한 세션 (0) | 2020.02.13 |
---|---|
[RUBY-ON-RAILS] 레일 3 'config.autoload_paths'에 lib 디렉토리를 추가하면 내 모듈을 자동로드하지 않습니다 (0) | 2020.02.13 |
[RUBY-ON-RAILS] 레일 4.1에서 선택에서 열거 저장 (0) | 2020.02.13 |
[RUBY-ON-RAILS] 어떻게 레일 액티브 체인 여러 쿼리없이 ""절을합니까? (0) | 2020.02.13 |
[RUBY-ON-RAILS] 올바르게 jQuery를 JSON에서 복호화되지 난간 (배열 정수 키 해시되고) (0) | 2020.02.13 |