assets 폴더 안에 있는 js 파일로 @변수 보내기

조회수 1074회

안녕하세요! 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')
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 음.. assets/javascript 안에서 바로 사용할 방법은 없나보군요 ㅠ 감사합니다 알 수 없는 사용자 2017.8.22 18:07

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)