У меня есть модель под названием ImplicitTest
. Он назвал это тем, что объект Ruby под названием Test
просто ломает много вещей в Rails.
Тем не менее, я все же хочу показать его как ресурс RESTful как Test
(например, /tests
, /test/1/edit
и т.д.). Кроме того, было бы здорово сохранить контроллер как TestsController
, хотя это менее важно.
Я делал это, имея простую строку resources :tests
в файле routes.rb, но это не подходит для форм RESTful (например, <%= form_for @test ... >
) - это означает, что объект @test имеет тип ImplciitTest и пытается lookup implicit_test_path
, который не существует.
Я попробовал добавить параметры form_for, но пришел к выводу, что для работы формы для действий new
и edit
не было ни единого единого способа просить form_for() использовать другой префикс для поиск имени пути.
Итак, я пытался подойти к проблеме со стороны маршрутизации. Есть ли строка, которую я могу добавить в файл маршрутов, который позволит мне:
- Имейте модель под названием ImplicitTest
- Введите путь как /test
- Использовать тег <% = form_for @test...% >
- Храните контроллер как TestsController (необязательно)
Я знаю, что я ухожу из Golden Path, но Rails не позволяет мне использовать Test в качестве имени модели, но это имя, которое пользователи ожидают увидеть в URL-адресе для этого ресурса, поэтому я надеясь, что есть простые опции маршрутизации, которые позволяют это.