Использование именованных маршрутов с параметрами и form_tag

Я пытаюсь создать простую форму поиска в Rails, но я думаю, что что-то упустил.

У меня есть названный маршрут для поиска:

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

Я пытаюсь использовать это в моей форме поиска:

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

Но когда я загружаю форму поиска, я получаю ActionController :: RoutingError:

Не удалось сгенерировать search_url из {: action => "search",: controller => "home"} - у вас могут быть неоднозначные маршруты, или вам может потребоваться указать дополнительные параметры для этого маршрута. У content_url есть следующие обязательные параметры: [: first_name,: last_name] - все ли они удовлетворены?

Что мне не хватает? Я думал, что поля, определенные в моей форме, будут автоматически связаны с параметрами моего маршрута. : - /

Обновить:

Я понимаю, что search_path генерируется до того, как форма отображается сейчас, поэтому его нельзя обновить. Очевидно, задним числом!

Я изменил свои маршруты:

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

А теперьsearch действие просто делает:

def search
  redirect_to name_path(params)
end

Все это работает, удовольствие! Основной целью здесь было получить этот URL изназвание названный маршрут как результат выполнения поиска. Спасибо, парни!

Ответы на вопрос(2)

Ваш ответ на вопрос