2016-08-16 2 views
0

점수 카운터가 있고 그 점수 카운터의 값을 루비 변수에 할당하고 해당 변수를 저장하려고합니다.ruby ​​변수에 javascript 변수 할당

보기 :

 var score = 0; 
     window.setInterval(
     function countscore() { 
      if($('#game-area').is(':animated')){ 
       score = score + 1; 
       document.getElementById("score").innerHTML = score; 
       document.getElementById("score").submit(); //trying to assign here 
      } 

     }, 100); 

컨트롤러 :

def index 
    @user = User.find(current_user)  
    @score = @user.score 
end 

답변

1

당신은보다 더 복잡한 일을 수행해야합니다. ERB 코드는 클라이언트로 전송되는 HTML 파일을 생성합니다.이 파일은 어떤 서버 소프트웨어가 HTML 파일을 보내고 있는지 모르기 때문에 서버 측 변수를 할당 할 수 없습니다. 어떤 식 으로든 서버에 값을 업로드해야합니다. 예를 들어 양식 제출, URL 쿼리 문자열 매개 변수 또는 AJAX 요청을 사용할 수 있습니다.

+0

을하지만 당신은하지 nums11 @ 어떻게 다음 – nums11

+0

@csander 루비 변수에 자바 스크립트 변수를 할당합니다. 루비 코드는 클라이언트에 무엇인가 보내기 전에 서버에서 실행됩니다. 일단 당신이 클라이언트에 있다면 루비와 관련된 모든 일을 할 수있는 유일한 방법은 서버에 요청을하는 것입니다 (예 : Ajax, 웹 소켓 등) –

+0

폼 제출 후에도 여전히 말하고있는 것입니다. 아약스 요청을해야합니까? @DaveNewton – nums11

-1

는 다음 코드를 사용해보십시오 : 나는 양식 제출을 추가하려면 코드를 편집

var score = '<%= @user.score %>' 
+0

이것은 잘못된 방법입니다. 그는 JS가 Ruby가 아니라 Ruby가 JS가되도록합니다. 따라서 클라이언트에서 서버로 HTTP 호출이 필요합니다. –

+0

예 Javascript에서 Ruby로 JS 호출 만 필요합니다. –