Ich habe ein User
Modell, das has_many shifts
und Shift
Modell, die zu einem user
gehören. Ich versuche herauszufinden, warum ich einen No Route Match-Fehler bekomme.Keine passende Route in Rails 4
In routes.rb
:
get 'users/:id/shifts' => 'users#shifts', :as => :user_shifts
resources :shifts
Ich habe eine Route wie:
user_shifts GET /users/:id/shifts(.:format) users#shifts
und ich benutze es in meinem nav Blick auf die Seite verlinken, wie:
<li><%= link_to "Shifts", user_shifts_path(@shifts) %></li>
in mein Users
Controller:
def shifts
@user = User.find(params[:id])
@shifts = @user.shifts
end
Benutzer/shifts.html.erb:
<% @shifts.each do |shift| %>
<%= shift.start_time %>
<% end %>
Der Fehler:
No route matches {:action=>"shifts", :controller=>"users", :id=>nil} missing required keys: [:id]
aber wenn ich in der URL manuell eingeben http://localhost:3000/users/7/shifts
, funktioniert es?
Ich habe alles mit Antworten auf verwandte Fragen versucht, aber kann anscheinend nichts zur Arbeit bekommen. Kann jemand bitte helfen?
Trace:
app/views/layouts/_nav.html.erb:24:in `_app_views_layouts__nav_html_erb__2914379975493970040_70146050606840'
app/views/layouts/application.html.erb:13:in `_app_views_layouts_application_html_erb___3858195360324705958_70145981089600'
ich nicht funktioniert versucht ([@user, @shift]) fand den Fehler weg, aber dann bekam ich einen Fehler so etwas wie 'könnte notfind id' – Mohammed
die aktualisierte Lösung versuchen. – Dharam
'undefinierte Methoden-ID 'für Nil: NilClas' Ich habe auch die Spur aktualisiert nicht wissen, ob Sie die vollständige Spur benötigen! – Mohammed