2012-11-12 2 views
4

나는 레일 멍청 아. 나는 거짓말하지 않을 것이다. 나는 두 가지 형태를 취하여 하나의 역동적 인 형태로 바꾸는 임무를 맡았습니다. 로그인/가입 양식입니다. 내가 가진 유일한 문제는 코드의 레일 부분을 처리하는 방법입니다. jQuery를 사용하여 HTML 양식 작업을 쉽게 대체 할 수 있었지만 로그인 또는 로그인 라디오 선택에 따라 레일스 코드에서 작업/대상을 대체하는 방법은 어땠습니까?레일 - 라디오 선택을 기반으로 동작 양식 변경

<%= form_tag login_path, :id => '_login_form' do %> 
<% end %> 

<%= form_tag sign_up_path, :id => '_sign_up_form' do %> 
<% end %> 

답변

8

두 가지 방법으로 문제를 해결할 수 있습니다.

자바 스크립트를 사용하면 선택한 라디오 버튼을 기반으로 양식의 동작을 변경할 수 있습니다.

$("#radio").change(function() { 
    var action = $(this).val() == "some_value" ? "login" : "sign_up"; 
    $("#your-form").attr("action", "/" + action); 
}); 

또는 당신은 하나의 행동 두 가지 방법을 처리하고 각 옵션 separatedly

#view 
<p> <%= radio_button_tag :option, "login" %> Orange </p> 
<p> <%= radio_button_tag :option, "sign_up" %> Peach </p> 

#controller 
if params[:option] == "login" 
    #do login 
elsif params[:option] == "sign_up" 
    #do sign up 
end 

나는이 도움이 되었으면 좋겠를 처리 할 수 ​​있습니다!

+0

굉장! 고맙습니다! – TSNev

+0

그런 다음 : 옵션이 컨트롤러로 들어가는 방법은 무엇입니까? –

관련 문제