У меня есть модель под названием 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-адресе для этого ресурса, поэтому я надеясь, что есть простые опции маршрутизации, которые позволяют это.