So habe ich eine verschachtelte Ressource, wobei todolist
ist das übergeordnete und todoitem
ist das Kind.Rails verschachtelte Ressource (neu)
resources :todolists do
resources :todoitems
end
Ich habe einen Add Todo List
Link erstellt, wo es new_todolist_todoitem
in routes.rb
gefunden aufruft.
new_todolist_todoitem GET /todolists/:todolist_id/todoitems/new(.:format) todoitems#new
In meiner todolists/show.html.erb
Datei, habe ich diese Zeile Code enthalten:
<%= link_to 'Add Todo Item', new_todolist_todoitem_path(@todolist.id) %>
Und in meinem todoitems/_form.html.erb
, habe ich auch die verschachtelten Parameter innerhalb der IT:
<%= form_for([@todolist, @todoitem]) do |f| %> --> Error is on this line
<% if @todoitem.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@todoitem.errors.count, "error") %> prohibited this todoitem from being saved:</h2>
In meiner todoitems_controller.rb
stelle ich diese für new
und create
Methoden:
# GET /todoitems/new
def new
@todoitem = Todoitem.new
end
# POST /todoitems
# POST /todoitems.json
def create
@todoitem = @todolist.todoitems.new(:todoitem_params)
respond_to do |format|
if @todoitem.save
format.html { redirect_to @todoitem, notice: 'Todoitem was successfully created.' }
format.json { render :show, status: :created, location: @todoitem }
else
format.html { render :new }
format.json { render json: @todoitem.errors, status: :unprocessable_entity }
end
end
end
Das Problem ist, dass ich einen Fehler halte, die besagt:
undefined method `todoitems_path' for #<#<Class:0x007feaa79e8da8>:0x007feaa5d0d878>
Wenn jemand eine mögliche Lösung hat dieses Problem oder Vorschläge zu beheben, wäre es sehr geschätzt. Vielen Dank!
P.S. Entsprechend der Stapelüberwachung ist die Parameteranforderung: {"todolist_id"=>"2"}
Was, wenn ich das schon getan habe? Ich habe nur vergessen, es in diese Frage aufzunehmen. Kann ich noch etwas anderes machen? Ich habe überprüft, ob es einen Schreibfehler gab, aber es gab keine ... @uzbekjon – ETUDESC
Okay, mal sehen. Sie erhalten den Fehler 'todoitems_path undefined'. Das bedeutet, dass Ihr Code versucht, auf diesen Pfad zuzugreifen. Lass uns herausfinden, wo genau das passiert. Könnten Sie bitte eine vollständige Stapelverfolgung Ihres Fehlers hinzufügen? – Uzbekjon
Oh, ich bin gerade bei der Arbeit, aber ich werde es gerne veröffentlichen, sobald ich zurück bin ... haha @uzbekjon – ETUDESC