Как предотвратить плюрализм модели в Rails? - PullRequest
1 голос
/ 17 января 2011

У меня есть модель с именем Search и ресурс с именем :search. Я хотел бы назвать свой контроллер SearchController, а не SearchesController. Но когда я инициализирую экземпляр Search, Rails предполагает, что его маршрут должен быть "/ search".

Что я могу сделать, чтобы остановить это?

1 Ответ

1 голос
/ 17 января 2011

Это должно работать:

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 и контроллер.

Соответствующая документация (в разделе «Опираясь на именованные маршруты»)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...