Usando rotas nomeadas com parâmetros e form_tag

Estou tentando criar um formulário de pesquisa simples no Rails, mas acho que estou perdendo alguma coisa.

Eu tenho uma rota nomeada para pesquisa:

map.search ":first_name/:last_name", :controller => "home", :action => "search"

Estou tentando usar isso no meu formulário de pesquisa:

<% form_tag(search_path, :method => 'get') do %>
  <%= text_field_tag(:first_name) %>
  <%= text_field_tag(:last_name) %>
  <%= submit_tag("Search") %>
<% end %>

Mas quando carrego o formulário de pesquisa, recebo um ActionController :: RoutingError:

search_url falhou ao gerar a partir de {: action => "search",: controller => "home"} - você pode ter rotas ambíguas ou pode precisar fornecer parâmetros adicionais para esta rota. content_url possui os seguintes parâmetros necessários: [: first_name,: last_name] - todos estão satisfeitos?

o que estou perdendo? Eu pensei que os campos definidos no meu formulário seriam automaticamente vinculados aos meus parâmetros de rota. : - /

Atualizar:

Entendo que o search_path é gerado antes que o formulário seja exibido agora, portanto não pode ser atualizado. Óbvio em retrospectiva!

Eu mudei minhas rotas:

map.search 'search', :controller => "home", :action => "search"
map.name ':first_name/:last_name', :controller => "home", :action => "name"

E agora osearch ação apenas faz:

def search
  redirect_to name_path(params)
end

Tudo funciona um prazer! O principal objetivo aqui era obter esse URL donome rota nomeada como resultado de fazer uma pesquisa. Obrigado rapazes!

questionAnswers(2)

yourAnswerToTheQuestion