Rails - 根据无线电选择改变表单动作

TSN*_*Nev 4 forms jquery radio-button ruby-on-rails-3

我是一个Rails noob.我不会说谎.我的任务是采用两种形式并将它们变成一种动态形式.这是一个登录/注册表单.我唯一的问题是如何处理代码的Rails部分.使用jQuery,我可以轻松地替换HTML表单操作,但是如何根据登录或注册无线电选择来替换rails代码中的操作/目标.

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

<%= form_tag sign_up_path, :id => '_sign_up_form' do %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

fel*_*pes 9

我看到两个解决问题的方法.

使用javascript,您可以根据所选的单选按钮更改表单的操作.

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

或者,您可以在单个操作中处理这两种方法,并分别处理每个选项

#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
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助!