2010-12-30 6 views
10

Jestem trochę zmieszany z trasami w Rails 3, ponieważ dopiero zaczynam uczyć się języka. Mam formularz generowane tutaj:Szykuje 3 trasy i używa GET do tworzenia czystych adresów URL?

<%= form_tag towns_path, :method => "get" do %> 
    <%= label_tag :name, "Search for:" %> 
    <%= text_field_tag :name, params[:name] %> 
    <%= submit_tag "Search" %> 
    <% end %> 

Następnie w moich trasach:

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" 

Więc dlaczego po wysłaniu formularza mogę uzyskać adres URL:

/miast utf8 = ✓ & nazwa = nazwa miasta & commit = Wyszukaj

Więc pytanie brzmi jak mogę zrobić tego adresu URL do czystego url takich jak:

/miast/townname

Dzięki,

Andrew

+0

Czego się spodziewasz? –

+0

Przepraszam, zaktualizowałem ostatni bit stwierdzając, czego oczekuję od adresu URL. –

Odpowiedz

6

pierwsze szlaki

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

lub

match "town/:name" => "towns#index", :as => :townname, :via => [:post], :constraints => { :name => /[A-Za-z]/ } 

i forma

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

Artykuł na temat różnicy między POST i GET http://wiki.answers.com/Q/Co_nie_dla_dyncji_naz_miesięcznika_HTTP – Bohdan

+0

Czy to nie może być możliwe dzięki GET, aby zapewnić, że wyszukiwania będą przechowywane jako zakładki? Dziękujemy za opublikowanie tego rozwiązania! –

+0

Cóż, jeśli masz żądanie GET w adresie URL, zawsze masz parę parametrów i parametrów, więc prośba musi być POST spróbuj nowej trasy Właśnie dodałem – Bohdan

Powiązane problemy