Ich habe mit mir eine Reihe von Posts von einem Gerüst und Bilder hochgeladen mit Papierclip Juwel erstellt. Ich möchte auf jedem Profil des Benutzers die letzten sechs Bilder von den Benutzern letzten Beiträge zeigen, und dafür bin ich Filterung als solcheLimit Bilder zeigen in den letzten sechs Post
<% @posts.limit(6).each do |tweet| %>
<% if post.media.present? %>
<%= link_to image_tag(post.media.url(:thumb)), tweet %><br>
<% end %>
<% end %>
In meinem Controller habe ich die angeordnet Beiträge als solche
@posts = user.posts.order('created_at desc')
Meine Frage ist. Warum wird bei Verwendung des obigen Codes kein Bild angezeigt? Auf upping die Zählung bis 9, ich drei Bilder bekommen angezeigt, bis 12 erhalte ich sechs Bilder angezeigt und so weiter
Schließen Sie die Klammern für image_tag – radubogdan
Verwenden Sie Rails 5? Wenn ja, können Sie 'user.posts.left_join (: media)' verwenden, um sicherzustellen, dass den zurückgegebenen Posts ein 'media' zugeordnet ist. Wenn Sie Rails 5 nicht verwenden, können Sie den Join manuell definieren (https://apidock.com/rails/ActiveRecord/QueryMethods/joins). Und das löst auch Ihr n + 1-Abfrageproblem. – MrYoshiji