javascript
  • ruby-on-rails
  • parameter-passing
  • 2012-08-01 8 views 1 likes 
    1

    레일즈 버전 3.2.6을 사용하고 있습니다. 자바 스크립트 변수를 다른 페이지 "Test10"에 전달하려고합니다. 보기에 다음 코드가 있습니다.자바 스크립트 변수를 레일즈 콘트롤러로 넘겨주세요.

    <script> 
    var message = "hello world!"; 
    </script> 
    
    <%= link_to "Go!", Test10_path(), :with => "'message='+ message" %> 
    

    매개 변수는 Test10으로 전달되지 않습니다. 나는 Test10 컨트롤러에서 다음을 가지고있다.

    def Test10 
        @hello = params[message] 
    end 
    

    Javascript 변수를 레일 컨트롤러에 전달하는 올바른 방법인가? 그것은 작동하지 않습니다. 나는 어떤 조언을 주셔서 감사하겠습니다. 감사!

    답변

    5
    <%= link_to "Go!", Test10_path(), :id => "my_link" %> 
    
    
    <script> 
        var message = 'test'; 
        var url = $('#my_link').attr('href') + '?message=' + message; 
        $('#my_link').attr('href', url); 
    </script> 
    

    뭔가 작동합니다. 대부분의 경우, 양식을 사용하여 매개 변수를 전달하는 것이 가장 좋습니다.

    +0

    감사합니다. @Anthony. 그게 효과가 있었어! 양식을 사용하여 매개 변수를 전달하는 방법에 대해 배울 수있는 가장 좋은 자료는 무엇입니까? 왜 더 낫지? 다시 한 번 감사드립니다! – user1388066

    +0

    Javascript에서 값을 전달하려면 jQuery를 조금 배우십시오. 또한 레일을 사용하여 양식을 작성하는 방법을 배워야합니다. http://guides.rubyonrails.org/form_helpers.html –

    +0

    감사합니다. @Anthony 대단히 !! – user1388066

    0

    이 작업을 수행 할 수 없습니다. JavaScript와 Ruby 코드는 완전히 다른 컨텍스트, 클라이언트의 JavaScript 및 서버의 Ruby에서 실행됩니다.

    일반적으로 클라이언트에서 서버로 값을 전달하려면 폼이나 쿼리 문자열의 일부로 다시 게시하거나 AJAX를 통해 값을 전달해야합니다.

    예를 들어, 앵커 태그를 선택하는 JavaScript를 작성하고 message 변수의 내용을 앵커 태그의 쿼리 문자열에 추가해야합니다. 다음과 같은 뭔가 :

    <script> 
        var message = "hello world!"; 
    
        // Select your anchor tag 
        var link = $('a#my-link'); 
    
        // Append your message to the link's href attribute 
        link.attr('href', link.attr('href') + "?message=" + message); 
    </script> 
    
    이 같은
    +0

    감사합니다. @ meagar, 도움을 청합니다! – user1388066

    관련 문제