Ich bin neu auf Schienen und folgt durch ein Tutorial von Plural. Im Tutorial machen wir eine grundlegende Lebenslauf-Anwendung. Das Problem, das ich habe, ist, dass meine Lebenslaufseite aufgrund des folgenden Fehlers nicht rendern kann.Schienen 4 - Fehlende erforderliche Schlüssel - Route ist NICHT verschachtelt
No route matches {:action=>"show", :controller=>"resumes"} missing required keys: [:id]
Ich habe ähnliche Fragen auf Stapelüberlauf durchgesehen. Die meisten anderen Benutzer scheinen bei der Verwendung verschachtelter Routen auf dieses Problem zu stoßen. Meine Route ist jedoch nicht verschachtelt.
Hier sind meine Rails-Dateien.
Routen:
Rails.application.routes.draw do
get 'job/add'
get 'job/list'
resources :resumes do
member do
get 'viewed'
end
end
end
Relevante Teil von index.html.erb
<tbody>
<% @resumes.each do |resume| %>
<tr>
<td><%= resume.name %></td>
<td><%= resume.phone %></td>
<td><%= resume.email %></td>
<td><%= resume.street %></td>
<td><%= resume.city %></td>
<td><%= resume.state %></td>
<td><%= resume.zip %></td>
<td><%= resume.summary %></td>
<td><%= link_to 'Show', resume_path %></td>
<td><%= link_to 'Edit', edit_resume_path(resume) %></td>
<td><%= link_to 'Destroy', resume, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
Relevante Informationen aus resumes_controller.rb
class ResumesController < ApplicationController
# GET /resumes
# GET /resumes.json
def index
@resumes = Resume.all
end
end
Rake Routen:
Prefix Verb URI Pattern Controller#Action
job_add GET /job/add(.:format) job#add
job_list GET /job/list(.:format) job#list
viewed_resume GET /resumes/:id/viewed(.:format) resumes#viewed
resumes GET /resumes(.:format) resumes#index
POST /resumes(.:format) resumes#create
new_resume GET /resumes/new(.:format) resumes#new
edit_resume GET /resumes/:id/edit(.:format) resumes#edit
resume GET /resumes/:id(.:format) resumes#show
PATCH /resumes/:id(.:format) resumes#update
PUT /resumes/:id(.:format) resumes#update
DELETE /resumes/:id(.:format) resumes#destroy
Bitte lassen Sie mich wissen, wenn ich irgendwelche Informationen weggelassen habe, die Sie brauchen.
Die Seite rendert, wenn ich die Links entferne. Die Seite ist jedoch NICHT mit den Informationen gefüllt, die in resume.name, resume.phone usw. gespeichert sind. Dies führte mich zu der Annahme, dass ich vielleicht etwas mit der Datenbank vermasselt hatte (und vielleicht habe ich das!).
Ich habe in Rails-Konsole gegangen und bestätigt, dass die zugehörigen Datenbank Datensätze existieren (Resumes.all
druckt eine Liste der Informationen). Also dachte ich, dass die Datenbank vielleicht nicht migriert wurde. Ich lief rake db:migrate
und versuchte es erneut, aber die Informationen werden immer noch nicht auf dem Bildschirm gedruckt.
Das führt mich zu der Annahme, dass mein Problem in der Datenbank nicht korrekt zugegriffen oder Daten nicht abgerufen werden. Serverprotokolle zeigen an, dass die SQL-Datenbank abgefragt wird: Resume Load (0.2ms) SELECT "resumes".* FROM "resumes"
.
Ich bin sehr ratlos, wohin ich von hier aus gehen soll. Jede Hilfe, Ideen, wo zu suchen, alles würde geschätzt werden.
Danke für die Rückmeldung! Leider behebt das den Fehler nicht. Ich bekomme immer noch dieselbe Nachricht. – Cities