Rails 3 маршрутов и использование GET для создания чистых URL? - PullRequest
10 голосов
/ 30 декабря 2010

Я немного запутался с маршрутами в 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-адрес чистым, например:

/ города / townname

Спасибо

Andrew

1 Ответ

6 голосов
/ 30 декабря 2010

Сначала маршруты

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 %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...