Rails 3.1 Routing -Fehler
-
25-10-2019 - |
Frage
Ich habe einen Routing -Fehler, den ich einfach nicht herausfinden kann! Es macht meinen Kopf, wenn jemand eine Lösung vorschlagen kann, die sehr geschätzt wird.
Ich erhalte den Fehler: Routing -Fehler Keine Route übereinstimmt {: action => "create_from_template",: Controller => "Projekte"}
Aus der folgenden Taste:
<p><%= link_to "Create from template", create_from_template_project_path %></p>
In Routen.RB habe ich:
resources :projects do
member do
get 'create_from_template'
end
end
In Klassenprojekte controller habe ich:
def create_from_template
#@project = Project.find(params[:template_id])
#@project.clone
redirect_to projects_path
end
Es zeigt sich auch, wenn ich "Rake Routen" mache
create_from_template_project GET /projects/:id/create_from_template(.:format) {:action=>"create_from_template", :controller=>"projects"}
Hat jemand eine Idee, warum es nicht funktioniert?
Bearbeiten: Vielleicht habe ich die verschachtelten Ressourcen -Routing -Regeln "Mitglied" missverstanden. Ich habe nicht an einem Projekt vorbeigekommen. Ich habe den Knopf von geändert
zu
<p><%= link_to "Create from template", create_from_template_project_path(template_project) %></p>
Und jetzt funktioniert es. Vielen Dank an alle, die geholfen haben.
Lösung
Wenn Sie kein Projekt zum Erstellen von Vorlagenaktionen übergeben müssen, ändern Sie die Schaltfläche als: `
<%= link_to "Create from template", create_from_template_projects_path %>In Routen statt von
member dodu solltest benutzen
collection do
Wenn du benutzt member do
In Routes.rb sollten Sie das Projekt im Link_to übergeben, wie Prasvin erwähnt hat
Andere Tipps
Versuchen Sie das Projekt neben link_to im Pfad