2012-02-19 10 views
6

Tengo una ruta sin recursos que usa un token SHA en la ruta. Aquí está en mi archivo routes.rb:¿Cuál es la ruta link_to a una ruta sin recursos?

match 'permissions/confirm/:token' => 'permissions#confirm' 

puedo acceder a la ruta generada, pero no sé qué pasa en el ayudante link_to.

Aquí es lo que estoy usando para el link_to, que no está funcionando:

<%= link_to "Give permission", confirm_permission_path(:token => @permission.token) %> 

Pensamientos?

Respuesta

11

Añadir :as clave para su ruta como match 'permissions/confirm/:token' => 'permissions#confirm', :as => :confirm_permissions

Entonces <%= link_to "Give permission", confirm_permissions_path(:token => @permission.token) %>

+0

Esto parece tener sentido, y se ve bien cuando miro 'rutas de rastreo ', pero sigo obteniendo un error de método indefinido:' método indefinido confirm_permission_path'. – Scott

+0

¿Es solo que debería ser 'confirm_permissions_path', pluralizado –

+0

Sí, ese parecía ser el problema. ¡Gracias! – Scott

3

Siempre puede usar rake routes para averiguar cuál es el nombre de una ruta. Verifico la salida de esa tarea de rake todo el tiempo para asegurarme de que estoy usando la ruta correcta de reposo o no descanso.

+0

'routes' rastrillo muestra que el camino es'/permisos/Confirmar /: token (:. Formato) '. Pero no estoy seguro de cómo debería ser el link_to helper para esa ruta. – Scott

+4

Cuando ejecuta 'rake routes', hay 3 columnas de datos. La primera columna es la ruta link_to, por ejemplo: 'users_path'. La segunda columna es el formato (por ejemplo, '/ users/index (.: Format)'. Y, por último, la tercera columna es la acción y el controlador (por ejemplo, '{: controller => etc ...}'. Así que mira eso primera columna y verá los datos que necesita. – MrDanA

Cuestiones relacionadas