Это должно работать:
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 и контроллер.
Соответствующая документация (в разделе «Опираясь на именованные маршруты»)