2012-04-22 3 views
2

외부 API에서 이벤트를받는 내 application.html.erb [view file]에 자바 스크립트 코드 블록이 있습니다. 모두 내가 원하는 건 자바 스크립트 코드 블록에서 이벤트가 수신되면서 [application_helper.rb] 내부에서 도우미 메서드를 실행해야합니다.자바 스크립트 내에서 레일 도우미 메서드를 호출 할 수 있습니까?

여기에 대부분의 스택을 통과했지만 관련 답변을 찾을 수 없습니다.

자바 스크립트 코드 블록은 다음과 같습니다

var pusher = new Pusher('b00c9657a0a896f3ec26'); 
var channel = pusher.subscribe('NewOrders'); 
channel.bind('NewOrderArrived', function(data) { 

    [ I NEED TO CALL THE RAILS HELPER METHOD HERE ] 

console.log("got u") 
}); 
+0

자바 스크립트는 클라이언트에서 Ruby를 실행합니다. 서버 측을 사용하여 원하는 JS를 작성하거나 Ajax를 사용하십시오. –

답변

1

을하지 직접, 아니. Dave Newton이 언급 한 바와 같이 Ruby는 서버에서 실행되고 JS는 클라이언트에서 실행됩니다. 당신이하고 싶은 것은 다음과 같습니다 :

var pusher = new Pusher('b00c9657a0a896f3ec26'); 
var channel = pusher.subscribe('NewOrders'); 
channel.bind('NewOrderArrived', function(data) { 
    $.get('<%= url_for :some_controller_method_that_calls_helper %>', function(response){ 
    // the response variable will contain the output of the controller method 
    }); 
    console.log("got u") 
}); 
+0

답변을 주셔서 고마워요. 저에게 제한적으로 보입니다. 해결 방법이 있어야합니다. 자바 스크립트 이벤트를 기반으로 컨트롤러 내에서 정보를 처리해야하는 경우 어떻게해야합니까? –

+1

자바 스크립트 만 사용하여 처리해야하거나, AJAX를 사용해야합니다. 웹의 성격 일뿐입니다. – robbrit

관련 문제