2009-04-24 3 views
1

Я пытаюсь использовать form_for для реализации формы поиска, которая работает с созданной без таблицы моделью поиска. Форма поиска продолжает активировать действие «index». Я предполагаю, что я должен использовать «новый», чтобы создать форму и «создать» процесс поискового запроса. Глядя на журнал, мой POST превращается в GET. Вот мой код:RESTful способ использования form_for?

/searches/new.html.erb:

<% form_for :searches, @search, :url => searches_path, :html => {:method => :post} do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :keywords %><br /> 
    <%= f.text_field :keywords %> 
    </p> 
    <p><%= f.submit "Submit" %></p> 
<% end %> 

Что стандартный способ для запуска действия 'создать' с form_for?

ответ

1

Вы используете RESTful map.resources :searches?
Если да, то не должны быть установлены ваши :url на new_search_path?

+0

Да, я использую map.resources: search. pural_path plus POST должен отображаться в 'create.' new_singular_path будет отображать новое, которое я использую для отображения формы. Я бы хотел, чтобы форма в/search/new обрабатывалась с помощью 'create', но я продолжаю получать/индексировать. – sutee

1

form_for используется с моделями. Для простой формы поиска, я рекомендую делать что-то вроде этого:

<% form_tag posts_path, :method => :get do |f| %> 
    <%= f.text_field :query %> 
<% end %> 

Вы получите /posts?query=wtf.

Смежные вопросы