2009-08-29 24 views
19

¿Se pueden manejar los rieles creando una vista sin un controlador? Por ejemplo, supongamos que tengo una página que solo enlaza con otras páginas, ¿necesitaría crear un controlador ficticio para eso, o podría hacer algo en mi archivo de rutas?vista de rieles sin un controlador

Respuesta

14

No. Todas las solicitudes deben pasar por un controlador.

Me gustaría tener un PagesController, con map.page ":action", :controller => "pages". De esta forma, puedo crear app/views/pages/foo.erb y tenerlo disponible en /foo sin ningún código adicional.

+4

Thoughtbot tiene un complemento útil para esto: http://github.com/thoughtbot/high_voltage/tree/master – jonnii

+0

Esto parece obsoleto ahora ...? Primero dijo que el mapa no está definido. Luego agregué el mapa como un parámetro en la parte superior de las rutas.rb | map | Luego Rails dio un error más elaborado al señalarme esta URL [the-lowdown-on-routes-in-rails-3] (https://blog.engineyard.com/2010/the-lowdown-on-routes- in-rails-3 /) – msanjay

3

Otra opción sería agregar un archivo html estático en su directorio/public si realmente no lo necesita como parte de su aplicación.

0

No. Todas las solicitudes tienen que pasar por un controlador.

Si tiene una página como index.html.erb y contact.html.erb en su carpeta de vista. Necesita crear un controlador ficticio llamado contact. A continuación, puede vincular a contact.html.erb desde index.html.erb. Y proporcione el enlace como <%= link_to 'contact', :controller => "ads", :action => "contact" %> aquí "anuncios" -> nombre del controlador.

19

Me gusta la respuesta de agosto pero tengo un método ligeramente diferente.

Digamos que desea añadir

/any/path/somefile.html.erb

pero no añadir un controlador ...

Usted puede añadir a la carpeta vistas llamadas "aplicación", crea tu archivo en ese directorio ...

Luego, en tu archivo de rutas solo agrega

match '/any/path/somefile' => 'application#somefile' 

Su erb todavía evalúa, se obtiene su diseño, y se puede crear cualquier ruta que desea ... (todo esto es eliminar la necesidad de que el controlador de páginas)

creo que sirve ...

Cuestiones relacionadas