2011-01-17 13 views
1

Searchというモデルと、:searchというリソースがあります。 SearchesControllerではなく、コントローラの名前をSearchControllerにしたいと思います。しかし、Searchのインスタンスを初期化すると、Railsはそのルートが "/ searches"であることを前提としています。Railsでのモデルの複数化を防ぐには?

これをやめるためにできることはありますか?

答えて

1

これは動作するはずです:

resources :search, :as => :searches

ルートURLは、/searchと命名規則searchコントローラと使用デフォルトにポイントを開始します。

searches GET /search(.:format)   {:controller=>"search", :action=>"index"} 
      POST /search(.:format)   {:controller=>"search", :action=>"create"} 
new_search GET /search/new(.:format)  {:controller=>"search", :action=>"new"} 
edit_search GET /search/:id/edit(.:format) {:controller=>"search", :action=>"edit"} 
    search GET /search/:id(.:format)  {:controller=>"search", :action=>"show"} 
      PUT /search/:id(.:format)  {:controller=>"search", :action=>"update"} 
      DELETE /search/:id(.:format)  {:controller=>"search", :action=>"destroy"} 

エラーの理由は、フォームが唯一持っているときということですモデルインスタンスにアクセスすると、複数のモデル名に基づいてルートヘルパーを検索しようとします。この場合、searches_pathを使用しようとしました。デフォルトルート名を保持し、URLとコントローラのみを変更すると動作します。

Relevant documentation

+0

( "という名前のルートに頼っ" の下には)はい、それは私が私のroutesファイルに持っているものです。問題は機能しません。フォームに渡された検索のインスタンスは、 "no route '/ searches'が見つかりません。" – picardo

+0

@picardo:答えを更新しました – Heikki

関連する問題