预期的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"