2016-12-23 20 views
0

對於仍然比較新的rails新手問題,我表示歉意。我試圖展示所有喜歡當前用戶特定項目的用戶。在SO社區的幫助下,看着不同的Rails指南 - 我在那裏有85%。目前,我展示了所有喜歡所有項目的用戶(不僅僅是我想要的具體項目),下面列出了所有相關的簡單代碼 - 非常感謝你們!如何顯示所有喜歡我的具體項目的用戶

Index.html.erb

<%- @likers.each do |liker| %> 
<%= image_tag liker.avatar, width: 25, class: "css-style" %>&nbsp 
<%= liker.username %> 
<% end %> 

Items_controller

def index 
@items = Item.order("created_at DESC") 
if current_user.present? 
@likers = Item.where("user_id", current_user.id).map(&:users).flatten 
end 
end 

回答

1

所以,你希望所有@likers是所有誰喜歡的人的current_useritems

@likers = current_user.items.map(&:likes).flatten.map(&:user).flatten.uniq 

我已經添加了uniq因此,如果用戶喜歡這些職位的不止一個,你不會看到他們多次露面。當然,如果你想要重複的話,你可以忽略它。

我也根據你以前的問題對你的其他模型做了一些猜測,所以你可能需要根據你的實際實現來調整它。

+0

非常感謝您的回覆。這很令人驚訝 - 我只需要將(&:users)更改爲(&:user) – Omar

+0

當然!更正了答案。 – anyarms

+0

我想知道你是否可以幫助我解決這個問題,只要你可以自由 - 我非常接近答案,但只是一直堅持下去。如果你能幫助我,將是驚人的http://stackoverflow.com/questions/41325401/how-to-count-all-the-likes-that-user-has-done-on-my-specific-items-rails – Omar

相關問題