如何使用GET创建带有复选框的rails表单



预期的URL是

"versions/compare/id1/id2"

显然,这不起作用,但表明了的意图

<%= form_tag("/versions/compare/", :method => "get") do %>
  <% versions.each do |v| %>
    <% v.id == @version.id ? current_class = " current" : "" %>
    <li class="version-list <%= current_class %>">
       <%= check_box_tag(:compare_version, v.id) %>
       <%= link_to v.user.name, version_path(v) %>, 
    </li>
  <% end  %>
  <%= submit_tag("Compare") %>
<% end #form tag
 %>

上面的代码产生http://localhost:3000/versions/compare/?utf8=%E2%9C%93&compare_version=13&compare_version=12&commit=比较

有没有一种方法可以修改表单(+JS?),使其获得所需的URL?

"versions/compare/id1/id2"

您需要了解form_tag是如何工作的,它不能在呈现文档后更改url。

如果您想更改url,请使用jquery进行更改。

或者,只需将表单提交到其他url中,如

<%= form_tag("/comparing_version")

然后,在控制器中,处理完所有内容后,将用户重定向到

"版本/比较/id1/id2"

最新更新