Verwenden von form_for mit verschachtelten Ressourcen
Ich erstelle eine To-Do-Anwendung, um Rails fließend zu beherrschen. In meiner App gibt es vier Hierarchieebenen.
BenutzeGoals (mehrere Ziele pro Benutzer)Aufgaben (mehrere Aufgaben pro Ziel)Teilaufgaben (mehrere Teilaufgaben pro Aufgabe)Ich habe ein funktionierendes Front-End-Formular für jedes dieser Elemente, das verschachtelte Ressourcen verwendet. Meine routes.rb hat so etwas wie dieses
resources :goal do
resources :task do
resources :subtask
end
end
Was ich jetzt machen möchte ist, dass alle diese Formulare in einer der Ansichten des User-Controllers richtig sind.
Dies ist das Formular, das ich zu erstellen versucht habe:
<%= form_for @task, url: {controller: 'task', action: 'create'} do |f| %>
<%= f.label :description %>
<%= f.text_field :description %>
<%= f.submit "Add Goal", class: "btn" %>
<% end %>
Aber ich bekomme am Ende diesen Fehler
No route matches {:action=>"create", :controller=>"task", :id=>"1"}
The: id => 1 entspricht der Benutzerseite, auf der ich mich befinde http: // localhost: 3000 / user / 1)
Was ich verstehe ist, dass es nirgends die goal_id gibt, für die dieser Schritt vorgesehen ist. Keine Ahnung, wie man das umsetzt.
Eine andere Sache, die ich bemerkt habe, ist, dass eine Antwort aufrake routes
zeigt viele URI-Pfade, aber nichts für die POST-Methode. Es erlaubt mir nicht, einen Pfad von dort im @ zu verwendurl:
imform_for
weil es nicht mit der POST-Methode übereinstimmt.
Also meine Fragen sind:
Wie route ich ein form_for das, wenn du Ressourcen verschachtelt hast?Wie kann ich die ID der übergeordneten Ressource angeben, während ich form_for verwende, damit meine Erstellungsaktion ordnungsgemäß weitergeleitet wird?