Rails 3.1 Error de enrutamiento
-
25-10-2019 - |
Pregunta
¡Tengo un error de enrutamiento que simplemente no puedo entender! Me está haciendo la cabeza, si alguien puede sugerir una solución que sería muy apreciada.
Recibo el error: error de enrutamiento sin coincidencias de ruta {: action => "create_from_template",: controler => "proyectos"}
Desde el siguiente botón:
<p><%= link_to "Create from template", create_from_template_project_path %></p>
En rutas.rb tengo:
resources :projects do
member do
get 'create_from_template'
end
end
En clase ProjectScontroller tengo:
def create_from_template
#@project = Project.find(params[:template_id])
#@project.clone
redirect_to projects_path
end
También aparece cuando hago "rutas de rastrillo"
create_from_template_project GET /projects/:id/create_from_template(.:format) {:action=>"create_from_template", :controller=>"projects"}
¿Alguien tiene alguna idea de por qué no funciona?
Editar: En realidad, tal vez he entendido mal las reglas de enrutamiento de recursos anidados "miembros". No estaba pasando en un proyecto. He cambiado el botón de
a
<p><%= link_to "Create from template", create_from_template_project_path(template_project) %></p>
Y ahora funciona. Gracias a todos los que ayudaron.
Solución
Si no necesita pasar el proyecto para crear acción de plantilla, cambie el botón como: `
<%= link_to "Create from template", create_from_template_projects_path %>En rutas, en lugar de
member doDeberías usar
collection do
Si utiliza member do
en rutas.rb, entonces debe aprobar el proyecto en el enlace_to como Prasvin ha mencionado
Otros consejos
Intente enviar el proyecto en la ruta junto con Link_TO