2013-08-21 4 views
0

은 내 양식을 제출하고자하는 URL이 나는 성공적으로선택 상자를 사용하여 양식을 올바른 URL에 어떻게 제출합니까? [레일 3]

a.btn.btn-success href=url_for(controller: :tournaments, action: :matches, id: tournament.id) Button text 

여기 내 양식의이 라인이 어울릴 HREF를 구축 할 수 있습니다 내 응용 프로그램에서이 패턴

/tournaments/:id/matches 

을 다음과 (슬림 사용)

= form_tag({:controller => :tournaments, :action => :matches}, :method => :get) do                       
    select name="id"               
     - @all_tournaments.each do |tournament|         
     - if tournament.id == @tournament.id         
      option value="#{tournament.id}" selected="selected" #{tournament.name} 
     - else                 
      option value="#{tournament.id}" #{tournament.name}     
    br                   
    input.btn.btn-success type='submit' value='Submit'   

양식 코드는 선택 상자가있는 양식을 올바르게 구성합니다. 나는이 URL에있어 때 :

/tournaments/4/matches 

를 제출 옵션 6 형태는 URL을

/tournaments/4/matches?utf8=%E2%9C%93&id=6 

ID입니다 = 6 쿼리 부분에 저를 보냅니다 선택했습니다. 원하는 양식을 제출하려면

/tournaments/6/matches 

양식을 구성하려면 어떻게해야합니까?

루비를 실행 중입니다. 1.9.3 & 레일 3.2.11.

내 경로

resources :tournaments do 
    get 'matches', :on => :member 

답변

0

당신이 대회를 선택하는 동안 당신은 이벤트를 트리거 할 수 있습니다 /tournaments/:id/matches

에 대한 URL을 지정하고 양식의 URL을 수정해야하는 경우 나,이 자바 스크립트의 작품이 아닌 레일 생각 .

$(function(){ 
    $('select#id').change(function(){   
     $('form').attr('url', '/tournaments/'+$(this).val()+'/matches'); 
    }); 
}); 

fiddle를 참조하거나 당신은 get 'tournaments/matches' 같은 경로를 정의 할 수 있습니다. 그냥 id를 params list에 넣으십시오.

관련 문제