2009-04-24 9 views
1

作成したテーブルレス検索モデルで動作する検索フォームを実装するためにform_forを使用しようとしています。検索フォームは引き続き 'インデックス'アクションをトリガーします。私は、フォームを作成するために「新しい」を使用し、検索クエリを処理するために「作成する」と仮定します。ログを見ると、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を使用していますか?
その場合、:urlnew_search_pathに設定しないでください。

+0

はい、map.resources:searchesを使用しています。 pural_pathとPOSTは「作成」にマップする必要があります。 new_singular_pathは、私がフォームを表示するために使用しているnewにマップします。私は、/ search/newのフォームを 'create'で処理したいのですが、代わりに/ indexを取得し続けます。 – sutee

1

form_forはモデルで使用されます。シンプルな検索フォームのために、私はこのような何かをやってreccommend:

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

あなたは/posts?query=wtfを取得します。

関連する問題