assets 폴더 안에 있는 js 파일로 @변수 보내기
조회수 1075회
안녕하세요! ruby on rails를 사용중입니다.
제가 하려는 것의 특성상 마크업보다 js를 많이 사용하고 있는데요. 그동안은 js를 views/뷰파일.html.erb 파일에서 script 태그를 생성해서 그 안에 넣어주었습니다.
그런데 js코드가 너무 길어짐에 따라 관리가 힘들어지는 것 같고하여 assets/javascripts 폴더 안에 있는 js파일로 옮기려고 하는데요.
여기서는 js.erb 를 파일명으로 생성해도, 컨트롤러에서 생성한 @변수( 어떤 변수라고 하는지 이름은 잘 모르겠습니다)를 사용할 수 없는 것같습니다.(테스트를 해보았는데 nil 클래스 에러가 나오더라구요. 같은 코드를 view파일안에서는 잘 되었습니다.)
@변수를 assets/javascript 폴더 안에 있는 js 파일에서 사용하려면 어떻게 해야하나요?
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
저는 보통 뷰 파일에다 init 함수 하나 만들어서 넘겨주고, init 함수에서 해당 변수를 사용하거나,
$(document).ready( function(){ foo_init(#{@test_id}) }); function foo_init(test_id) { }
dom을 hide해서 변수를 넣고, javascript에서 찾거나, 특정 element에 data attribute에 변수를 넣어서 찾아쓰거나 했어요.
test_id = document.querySelector(".test_id").textContent 혹은 test_id = $('header').data('test-id')
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력