Ich stoße hier auf ein seltsames Problem. Ich fahre Rails 4.2.1 & Ich benutze das Rails Crash Course Buch von Anthony Lewis und befolge die Anweisungen in diesem Buch. Der Link für die Buchanweisungen lautet found here über Google Bücher.Rails 4.2.1, Verwenden von Auflistungen mit partiellen Ursachen Die angezeigten Elemente werden basierend auf der Anzahl der Elemente wiederholt
So in den Anweisungen, sagt er den folgenden Codeblock in einen Teil namens „_post.html.erb“
<% @posts.each do |post| %>
<h2><%= link_to post.title, post %></h2>
<p><i><%= friendly_date post.created_at %></i></p>
<p><%= post.body %></p>
<p>
<%= link_to 'Edit', edit_post_path(post) %>
<%= link_to 'Destroy', post, method: :delete,
data: { confirm: 'Are you sure?' } %>
</p>
<% end %>
Er sagt dann zu bewegen, dass Sie den folgenden Code ausführen können grundsätzlich die teilweise zu aktivieren.
<%= render :partial => 'post', :collection => @posts %>
// or the simplified version ...
<%= render @posts %>
Wenn ich dies tue, werden die auf der Seite angezeigten Elemente jedoch um die Anzahl der Elemente wiederholt. Also in diesem Fall habe ich 3 Gegenstände und sie werden 3 mal wiederholt. I have attached a screenshot.
Wenn jedoch der Code nicht in eine partielle entfernt wird und keine Sammlungen verwendet werden, funktioniert es einwandfrei. Mit anderen Worten, wenn sich der Code in der Datei "index.html.erb" der Ansicht befindet, gibt es keine Wiederholungen der angezeigten Elemente.
Kann mir jemand helfen, was hier vor sich geht? Ich würde das wirklich zu schätzen wissen!
Danke Ich habe das auch versucht, aber es wiederholt immer noch – AliceY
Sie sollten entweder '<% = render: partial => 'post',: collection => @posts%>' oder '<% @ posts.each do | Beitrag | %> ', aber nicht beide –
Entschuldigung, aber können Sie dies näher ausführen. Nur der Block, der mit '<% @ posts.each do | post | %> 'funktioniert in der Datei index.html.erb. Wenn ich '<% = render: partial => 'post' verwenden soll,: collection => @posts%>' wie würde das funktionieren? Danke – AliceY