2011-08-18 20 views
2

私はグローバル検索とモデル検索にmeta_searchを使用しようとしています。Rails 3のルーティングの問題

モデル検索では、モデルのインデックスファイルにあります。私はこのコードでform_forを作成します。

<%= form_for @search, :url => building_path, :html => {:method => :get} do |f| %> 
<%= f.label :name %> 
<%= f.text_field :city %> 
<%= f.submit %> 
<% end %> 

私のモデルのコントローラは、このコード

def index 
@search = Building.search(params[:search]) 
@buildings = @search.all 
end 

を持っている。しかし、私は私の建物のインデックスを表示しようとすると、私はこのエラーメッセージ

ActionController::RoutingError in Buildings#index 

Showing /Users/stephanebaribeau/Sites/cadifice/app/views/buildings/index.html.erb where line #4 raised: 

No route matches {:action=>"show", :controller=>"buildings"} 

Extracted source (around line #4): 

1: <h1>Listing buildings</h1> 
2: 
3: 
4: <%= form_for @search, :url => building_path, :html => {:method => :get} do |f| %> 
5: <%= f.label :name %> 
6: <%= f.text_field :city %> 
7: <%= f.submit %> 

を持っている私のroutes.rbを持っていますこの リソース:建物は リソース:階 終了

私は複数の、同じエラーなしで試してみました。

私のすくいルートは私に私のルートを間違っ

 building_floors GET /buildings/:building_id/floors(.:format)   {:controller=>"floors", :action=>"index"} 
         POST /buildings/:building_id/floors(.:format)   {:controller=>"floors", :action=>"create"} 
    new_building_floor GET /buildings/:building_id/floors/new(.:format)  {:controller=>"floors", :action=>"new"} 
    edit_building_floor GET /buildings/:building_id/floors/:id/edit(.:format) {:controller=>"floors", :action=>"edit"} 
     building_floor GET /buildings/:building_id/floors/:id(.:format)  {:controller=>"floors", :action=>"show"} 
         PUT /buildings/:building_id/floors/:id(.:format)  {:controller=>"floors", :action=>"update"} 
         DELETE /buildings/:building_id/floors/:id(.:format)  {:controller=>"floors", :action=>"destroy"} 
      buildings GET /buildings(.:format)        {:controller=>"buildings", :action=>"index"} 
         POST /buildings(.:format)        {:controller=>"buildings", :action=>"create"} 
      new_building GET /buildings/new(.:format)       {:controller=>"buildings", :action=>"new"} 
     edit_building GET /buildings/:id/edit(.:format)      {:controller=>"buildings", :action=>"edit"} 
       building GET /buildings/:id(.:format)       {:controller=>"buildings", :action=>"show"} 
         PUT /buildings/:id(.:format)       {:controller=>"buildings", :action=>"update"} 
         DELETE /buildings/:id(.:format)       {:controller=>"buildings", :action=>"destroy"} 

いただきましたことを与えますか? おかげ

答えて

2

変更するには、このようなbuildings_path代わりのbuilding_pathへのURL:

<%= form_for @search, :url => buildings_path, :html => {:method => :get} do |f| %> 
+0

私はそれも同じ経路エラーを試しました。 – neimad

1

あなたののform_forラインにbuilding_pathを使用している、建物に行くことができます/:IDすなわちショーページ。 buildings_pathを使用すると、のインデックスページに移動します。