Ruby on rails Rails 3路由和使用GET创建干净的URL?

Ruby on rails Rails 3路由和使用GET创建干净的URL?,ruby-on-rails,get,routes,ruby-on-rails-3,Ruby On Rails,Get,Routes,Ruby On Rails 3,我对Rails 3中的路线有点困惑,因为我刚刚开始学习这门语言。我在这里生成了一个表单: <%= form_tag towns_path, :method => "get" do %> <%= label_tag :name, "Search for:" %> <%= text_field_tag :name, params[:name] %> <%= submit_tag "Search" %> <%

我对Rails 3中的路线有点困惑,因为我刚刚开始学习这门语言。我在这里生成了一个表单:

  <%= form_tag towns_path, :method => "get" do %>
    <%= label_tag :name, "Search for:" %>
    <%= text_field_tag :name, params[:name] %>
    <%= submit_tag "Search" %>
  <% end %>
那么,为什么在提交表单时我会得到URL:

/城镇?utf8=✓&name=townname&commit=Search

因此,问题是如何将该url转换为干净的url,如:

/城镇/镇名

谢谢

安德鲁

首先是路线

resources :towns do
  post 'townname', :on => :collection
end 

形式呢

<%= form_tag townname_towns_path, :method => "post" do %>
  <%= label_tag :name, "Search for:" %>
  <%= text_field_tag :name, params[:name] %>
  <%= submit_tag "Search" %>
<% end %>
“post”do%>

对不起,我已经更新了最后一位,说明了我希望url显示的内容。文章介绍了POST和GET之间的区别GET是否可以确保任何搜索都可以存储为书签?感谢您发布此解决方案!如果你在URL中有GET请求,你总是会有参数-值对,所以请求必须是POST-try-new-route,我刚刚添加了dejust,回到这里,我明白你的意思了,我忘记了我在哪里读到的GET请求,但更简单的是说重定向来创建它们。这将引出我的下一个问题,谢谢你的回答,因为这很好:)有人能告诉我那是什么吗?医生?
match "town/:name" => "towns#index", :as => :townname, :via => [:post], :constraints => { :name => /[A-Za-z]/ }
<%= form_tag townname_towns_path, :method => "post" do %>
  <%= label_tag :name, "Search for:" %>
  <%= text_field_tag :name, params[:name] %>
  <%= submit_tag "Search" %>
<% end %>