Von meiner Benutzer-Indexseite möchte ich die Detailseite des Benutzers (mit einem link_to-Tag) öffnen und die Fehlermeldung Keine Route erhalten {: action => "show",: controller => "users",: id => nil} fehlender Schlüssel: [: id]link_to user_path (@user) nicht öffnende Seite
Wenn ich die URL eingeben .../Benutzer/ID (zB Benutzer/1) bekomme ich die richtige Seite . Versucht viele Alternativen für das link_to-Tag. Was sollte es sein?
Dies ist der zugehörige Code:
<ol class="list-group">
<% @users.each do |user| %>
<li class="list-group-item clearfix">
<h3 class="pull-right"><small class="text-uppercase">created </small><%= user.created_at.to_time %></h3>
<h2 class="h3"><%= user.first_name %> <%= user.last_name %><small> <%= user.username %></small></h2>
<%= link_to "details", user_path(@user), class: "pull-right" %>
<h4><%= user.email %></h4>
</li>
<% end %>
</ol>
In meinem Controller habe ich:
def show
@user = User.find(params[:id])
end
Und route.rb: resources :users
Warum Sie extra Schleife ausführen, um einzelne Daten vom Objekt zu extrahieren. – vipin
@vipin: nicht sicher, was Sie mit extra Schleife meinen. Führe eine Schleife auf der Indexseite aus, um alle Benutzer aufzulisten (jeweils in Listengruppenelement); dann von einzelnen Benutzer öffnen Benutzerdetails Seite. –
Ihr oben ist show.html.erb – vipin