2012-01-27 4 views
0

내 레일 3.1 응용 프로그램에서 내 HTML 테이블에 3 가지 자바 스크립트 파일이 있습니다. 예를 들어 table1.js.coffee, table2 및 table3을 예로 들어 보겠습니다. 이처럼CoffeeScript 및 erb : 변수 파일 필요

// = require <%= 'table2' %> 
// or (more useful) 
// = require <%= Settings.js_table %> 

:

// = require table 

을 그리고 내 table.js.coffee.erb, 나는 그런 일을하고자하는 내 application.js 파일에서

, 나는이 extern 구성 파일에서 테이블의 동작을 변경할 수 있습니다. 잠시 동안 작동하지 않습니다. 가능한지 궁금 해서요?

감사합니다.

+0

가능한 복제본 [레일 자산 파이프 라인에서 erb 변수 사용하기] (http://stackoverflow.com/questions/8494181/using-erb-variable-in-rails-asset-pipeline) –

답변

1

작동하지 않습니다.

파이프 라인의 파일은 해당 시점의 내용 (및 해결 된 erb)을 기반으로 첫 번째 요청에서 컴파일됩니다.

파이프 라인 파일 내부에서 내용을 참조하는 경우 다른 곳에서 변경된 경우 업데이트되지 않습니다. 응답

편집 코멘트 :

미안 해요, 명확하고 있어야합니다. 이것의 일반적인 경우는 작동하지 않습니다.

require와 함께 사용하는 경우 require 문은 스프로킷 관련 명령입니다. 그것은 erb 핸들러가 그것을 얻기 전에 Sprockets에 의해 처리됩니다.

지시어에는 하나의 인수 - 문자열이 필요합니다. 이 경우 require 지시문에 3 개의 인수를 전달했습니다. 여는 erb 태그, 인용 된 문자열 및 닫는 erb 태그입니다.

왜 3 인수 오류가 발생합니까?

런타임에 파일을 동적으로 포함하는 최선의 방법은보기 레이어에서 만드는 것입니다.

+0

알고 있습니다. 그러나'= required <% = 'table2'%>'조차도 작동하지 않습니다. 나는이 오류를 잡는다 :'ArgumentError : 틀린 인수의 수 (3 for 1)' –

+0

자, 이제 훨씬 더 명확해진다! 고맙습니다! –