2014-06-21 3 views
1

.js 파일에 URL을 전달해야합니다. 이 URL은 Rails에 의해 생성되고 은 하나의 인수을 허용합니다. 레일에서 자바 스크립트로 currying 함수 전달하기

#routes 
get "my_super/:some_id" => "controller1#my_super", 

#index.html.haml 
:javascript 
    var myUrlFunc = "#{my_super_url}"; //my_super_url(...) expects one argument 

그리고은 .js 파일 :

$.ajax({ 
    url: myUrlFunc($("#active_user_id")); 
    }) 
    //................ 

요점은이 동적으로 선택된 것 같이 내가 처음 some_id을 몰라, 그것은 드롭 다운 목록에서 선택합니다. 그래서 나는 함수myUrlFunc에 하나의 인수를 취하고 URL 자체 대신 URL을 반환해야합니다. 이 오류는 오류로 인한 것이 아니라고 생각했습니다.

No route matches {:action=>"my_super", :controller=>"controller1"} missing required keys: [:some_id] 

어떻게해야합니까?

+0

의 라인을 따라 것 .. http://railscasts.com/episodes/324-passing-data-to-javascript?view=asciicast –

+0

@Gagan하지만, Rails에서 JS로 카레 함수를 전달하는 방법을 설명하지 않습니다. –

+0

나는 아주 새로운 꿀벌이지만, 당신을 도울 수있는 자원을 제공함으로써 당신을 도우려는 많은 전문가는 아닙니다. 이것을 확인하십시오 http://spin.atomicobject.com/2013/11/22/pass-rails-data-angularjs/ –

답변

1

라우팅 도우미는 누락 된 매개 변수로 라우팅 도우미를 호출 할 수 없습니다. 더 많은 루비는 루비 메소드를 자바 스크립트 함수로 직렬화하는 법을 알지 못합니다.

간단하지 않은 한 가지 간단한 방법은 더미 값을 my_super_url에 전달하는 것입니다. 귀하의 기능은 다음이 당신을 도울 수

var myUrlFunc = function(id){ 
    var base = #{my_super_url("--DUMMY--")}; 
    return base.replace("--DUMMY--", id); 
} 
관련 문제