【问题标题】:How to show all the Users who have liked my specific Items如何显示所有喜欢我的特定项目的用户
【发布时间】:2016-12-23 01:38:57
【问题描述】:

对于对于 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

【问题讨论】:

    标签: html ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:

    那么,您希望所有@likers 都是喜欢current_useritems 的人吗?

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

    我添加了uniq,因此如果用户喜欢这些帖子中的多个帖子,您将不会看到它们出现多次。当然,如果你想要重复,你可以省略它。

    我还根据您之前的问题对您的其他模型进行了一些猜测,因此您可能需要根据您的实际实现对其进行调整。

    【讨论】:

    • 非常感谢您的回复。这很棒 - 我只需将 (&:users) 更改为 (&:user)
    • 我想知道你是否可以在你有空的时候帮我解决这个问题一分钟 - 我非常接近答案,但只是永远坚持下去。如果你能帮助我会很棒stackoverflow.com/questions/41325401/…
    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 2014-05-05
    • 1970-01-01
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    相关资源
    最近更新 更多