Rails 3 маршрута и использование GET для создания чистых URL-адресов?
Я немного запутался в маршрутах в Rails 3, так как я только начинаю изучать язык. У меня есть форма, сгенерированная здесь:
<%= form_tag towns_path, :method => "get" do %>
<%= label_tag :name, "Search for:" %>
<%= text_field_tag :name, params[:name] %>
<%= submit_tag "Search" %>
<% end %>
Затем на моих маршрутах:
get "towns/autocomplete_town_name"
get "home/autocomplete_town_name"
match 'towns' => 'towns#index'
match 'towns/:name' => 'towns#index'
resources :towns, :module => "town"
resources :businesses, :module => "business"
root :to => "home#index"
Итак, почему при отправке формы я получаю URL-адрес:
/города utf8 = ✓ &? Имя = townname & совершить = Поиск
Итак, вопрос в том, как сделать этот url в чистый URL-адрес, например:
/города/townname
Спасибо,
Эндрю
Ответы
Ответ 1
Во-первых, маршруты
resources :towns do
post 'townname', :on => :collection
end
или
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 %>