Tengo un modelo llamado ImplicitTest
. Se llama así porque tener un objeto Ruby llamado Test
simplemente rompe muchas cosas en Rails.Cómo escribir el enrutamiento cuando el nombre del modelo de recurso no coincide con la ruta o el controlador
Sin embargo, todavía quiero exponerlo como un recurso RESTful como test
(por ejemplo, , /test/1/edit
y así sucesivamente). Además, sería genial mantener el controlador como TestsController
, aunque eso es menos importante.
que estaba haciendo esto a través de la línea de simples resources :tests
en mi archivo routes.rb, pero esto no funciona para las formas REST (por ejemplo <%= form_for @test ... >
- esto recoge que el objeto es de tipo @test ImplciitTest, y trata de las operaciones de búsqueda, que implicit_test_path
no existe.
he intentado añadir form_for opciones, pero llegué a la conclusión de que para tener el trabajo forma para ambos new
y edit
acciones, no había una manera única, unificada de pedir form_for() para utilizar un prefijo diferente para la búsqueda del nombre de ruta.
Así que he estado tratando de abordar el problema desde el enrutamiento lado. ¿Hay una línea que puedo añadir en el fichero de rutas que me va a permitir:
- Tener un modelo llamado ImplicitTest
- tiene la ruta como/prueba
- Uso del <% = form_for @test .. .%> etiqueta todavía
- Mantenga el controlador como TestsController (opcional)
sé que estoy de salir de la trayectoria de oro para hacer esto, pero los carriles no me deja usar la prueba como un nombre de modelo, pero esto es el nombre que los usuarios esperarán ver en la URL de este recurso, así que espero que haya opciones simples de enrutamiento que lo habiliten.
Eso no parece ajustar el nombre del controlador, pero ajustándolo a 'resources: implicit_tests,: controller =>" tests ",: path =>" tests "' parecía agregar eso en. – Phantomwhale