2011-04-15 21 views

Respuesta

117

Sí, esto es un error de pluralización.

Al pasar la ID 1, supongo que desea mostrar un solo registro.

Así que hay que utilizar el singular 'message_thread':

message_thread_path(1) 

que producirá:

http://localhost:3000/message_threads/1 
+1

Lol, esto funciona. Juro que probé esto varias veces. Una de esas noches ... – ghempton

+3

Heh. Nos sucede a todos; frecuentemente. ¡Probablemente no será la última vez que vea este error! – Scott

+0

Recibo el mismo error con una ruta con nombre que creé y no lo estoy pluralizando. ¿Cuál sería la solución allí? – kakubei

15

A veces esto también es cuando usted no proporciona una: como parámetro en su ruta :

delete "delete/:id" => "home#delete" 

cambiado a:

delete "delete/:id" => "home#delete", as: :delete 

(ignorar el ejemplo extraña, acaba de pasar a ser algo que sólo encontramos con una aplicación interna que estamos construyendo)

+4

Esto funcionó para mí. Especificando **: as ** me dio un nombre al que podría adjuntar "_path" y hacer que Rails supiera qué diablos estaba pidiendo en link_to. Originalmente, cuando mi archivo de rutas tenía: 'partido "/ xyz/mostrar /: project_id"=> "xyz # show_project",: a través de => [: get]' mi punto de vista marcado: '< % = link_to "Mostrar detalles", xyz_show_path (@project)%> ' mantuvo la producción:' http: // localhost: 3000/xyz/show.1' Cambiar el fichero de rutas a: 'partido "/ XYZ/mostrar /: project_id"=> "xyz # show_project",: a través de => [: get],: as => "espectáculo"' permitidos: '<% = link_to "Mostrar detalles", show_path (@project)%> ' para trabajar. – ayang