1
Search
というモデルと、:search
というリソースがあります。 SearchesController
ではなく、コントローラの名前をSearchController
にしたいと思います。しかし、Searchのインスタンスを初期化すると、Railsはそのルートが "/ searches"であることを前提としています。Railsでのモデルの複数化を防ぐには?
これをやめるためにできることはありますか?
Search
というモデルと、:search
というリソースがあります。 SearchesController
ではなく、コントローラの名前をSearchController
にしたいと思います。しかし、Searchのインスタンスを初期化すると、Railsはそのルートが "/ searches"であることを前提としています。Railsでのモデルの複数化を防ぐには?
これをやめるためにできることはありますか?
これは動作するはずです:
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とコントローラのみを変更すると動作します。
( "という名前のルートに頼っ" の下には)はい、それは私が私のroutesファイルに持っているものです。問題は機能しません。フォームに渡された検索のインスタンスは、 "no route '/ searches'が見つかりません。" – picardo
@picardo:答えを更新しました – Heikki