2011-10-29 13 views
0

「users/search」にPOSTする必要がある検索フォームがあります。以下の関連するコードスニペットです: - 私はこれは、ユーザー/に投稿することを期待フォームからカスタムアクションへのPOSTアクションで処理されていないPOSTエラー - 代わりにルーティングエラー

フォーム

<%=simple_form_for @user, :url => search_user_path(@user), :input_html => {:method => :post} do |f|%> 
    <div id="top" style="width:979px; height:30px;"> 
    <%= select "search", :area_id, Area.find(:all).collect { |p| [p.name, p.id]}, {:selected => current_user.address.area} %> 
    <%= f.association :categories, :as => :check_boxes, :label => false%> 
    <%= f.submit "Submit"%> 
    </div> 
<% end %> 

:ID /検索

resources :users do  
    member do 
    post 'search' 
    end 
end 

routes.rbをすくいルートは| grepの検索

search_user POST /users/:id/search(.:format) {:action=>"search", :controller=>"users"} 

のでルートは、私は私が無知で午前ルーティングエラー

Started POST "https://stackoverflow.com/users/9/search" for 127.0.0.1 at 2011-10-28 14:11:04 +0530 

ActionController::RoutingError (No route matches "https://stackoverflow.com/users/9/search"): 

を得る提出打つとき

ユーザーコントローラは、以下の方法

def search 
    Rails.logger.debug('In users#search') 
end 

を持って存在していますこれと無駄な研究の多くの後、私は入力のためにコミュニティに頼っています。どんな指針も非常に高く評価されます。ありがとう。

FYI私はあなたが複数でこれを書くために必要なレール3.0.9とRuby 1.9.2

-Tarun

答えて

1

日午前:

search_users_path(@user) 

また、フォームが少しあるweired 。あなたは、単にあなたがそのようなパスが存在しないため:method => :post

+0

がsearch_users_pathを使用することはできません必要いけない

<%= form_for @user, search_users_path(@user) do |f| %> 

代わりの

<%=simple_form_for @user, :url => search_user_path(@user), :input_html => {:method => :post} do |f|%> 

を書くことができます。 routes.rbをチェックすると、これがメンバーメソッドであることがわかります。したがって、search_user_path(@user)は実際には正しいです。 フォームの構文は若干異なりますが、ここで重要かどうかはわかりません。 –

関連する問題