Rails 3.1 erreur de routage
-
25-10-2019 - |
Question
J'ai une erreur de routage que je ne peux tout simplement pas comprendre! Son fait ma tête, si quelqu'un peut proposer une solution qui serait extrêmement apprécié.
J'obtiens l'erreur: eRREUR ROUTAGE Aucun résultat ne correspond {itinéraire: action => "create_from_template",: controller => "projets"}
à partir du bouton suivant:
<p><%= link_to "Create from template", create_from_template_project_path %></p>
Dans routes.rb je:
resources :projects do
member do
get 'create_from_template'
end
end
En classe ProjectsController je:
def create_from_template
#@project = Project.find(params[:template_id])
#@project.clone
redirect_to projects_path
end
Il montre aussi quand je fais « routes râteau »
create_from_template_project GET /projects/:id/create_from_template(.:format) {:action=>"create_from_template", :controller=>"projects"}
Quelqu'un a une idée pourquoi il isnt travailler?
EDIT: En fait, peut-être je l'ai mal compris le « membre » des règles de routage des ressources imbriquées. Je n'étais pas passer dans un projet. J'ai changé le bouton de
à
<p><%= link_to "Create from template", create_from_template_project_path(template_project) %></p>
et maintenant il fonctionne. Merci à tous qui a aidé.
La solution
Si vous ne devez passer projet pour créer une action de modèle, bouton de changement comme: `
<%= link_to "Create from template", create_from_template_projects_path %>Dans les routes, au lieu de
member dovous devez utiliser
collection do
Si vous utilisez member do
dans routes.rb alors vous devriez passer le projet dans link_to comme Prasvin a mentionné
Autres conseils
envoyer le projet d'essayer dans le chemin le long link_to