2016-08-05 5 views
2

Ich probiere Rails 5 aus und bin auf etwas Seltsames gestoßen. Überall, wo ich gegoogelt habe, steht, dass mein Code stimmt. Ich bin mir nicht sicher, was ich falsch mache.Rails 5 fügt ein "." zu einem link_to Pfad anstelle von einem "/"

Meine Ansicht Code:

<% provide(:title, "View all Users") %> 

<% @users = User.all %> 

<ul> 
    <% @users.each do |user| %> 
    <% @user = user %> 
    <li><%= link_to user.name, users_path(@user) %><%= user.name %></li> 
    <% end %> 
</ul> 

ausspuckt html:

<a href="/users.3">boop boop</a> 

Beachten Sie, dass der Pfad einen Punkt anstelle eines Schrägstrich verwendet.

Wer hat eine Idee warum?

Antwort

5

Ich glaube, das Problem ist die users_path(@user). Sie haben einen zusätzlichen s dort, versuchen user_path(@user) oder besser sogar versuchen @user

Ich würde diese Zeile schreiben, wie <li><%= link_to user.name, @user %><%= user.name %></li>

Rails intelligent genug, um zu verstehen, dass eine object Verknüpfung bedeutet, dass Sie für die auf die show Seite gehen wollen object

+1

Das war die richtige Antwort. Es ist schwer, mich mit den zusätzlichen Sachen zu beschäftigen, die Rails für mich in Bezug auf Type/Single (Users/User) macht. Danke für die schnelle Antwort! – ramijames

+1

@ramijames jederzeit! Ich bin selbst auf dieses Problem gestoßen und habe den Kopf 2 Tage lang dagegen geknallt. Eine Sache, die Sie mit Schienen in Frage stellen werden, ist, ob etwas im Plural ist oder nicht, im Zweifelsfall überprüfen Sie, ob Sie ein s an der Stelle des Fehlers haben oder brauchen. Ich bin nicht 100% sicher, was es tut, aber ich glaube es Dinge, die Sie versuchen, zusätzliche Parameter an den Controller zu übergeben, aber weil Sie nicht den Namen der Parameter angegeben hat, denkt es, dass Sie in der Lage sein möchten, einen anderen zu nennen format (wie xmo, json, etc) –

+1

Es ist frustrierend, weil ich eigentlich mit Singular begann und es aus irgendeinem Grund nicht Rendering war. Ich muss es fast gehabt haben und bin dann auf den falschen Weg gegangen. Lebe und lerne. Danke noch einmal. – ramijames

Verwandte Themen