如何列出喜欢给定post的用户

我无法弄清楚如何列出所有喜欢特定POST的用户。 目前我正在使用:

 

这使我可以计算与该特定POST相关的所有LIKES。但是它没有列出实际用户。

我已经尝试使用它来列出所有喜欢POST的用户

  

相反,我回来了:

 [#, #, #] 

是否有人知道我如何能够提取用户列表或USER_ID?

RAILS新手请帮忙!

楷模

 class User < ActiveRecord::Base has_many :likes, dependent: :destroy has_many :dailyposts, dependent: :destroy end class Dailypost < ActiveRecord::Base belongs_to :user has_many :likes end class Like < ActiveRecord::Base belongs_to :user belongs_to :dailypost end 

数据库

 ActiveRecord::Schema.define(:version => 20130210095553) do create_table "dailyposts", :force => true do |t| t.string "content" t.integer "user_id" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end create_table "likes", :force => true do |t| t.integer "dailypost_id" t.integer "user_id" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end create_table "users", :force => true do |t| t.string "name" t.string "email" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end end 

VIEWS

    

最简单的理解方法是将每个人都like ,然后向其user询问:

 dailypost.likes.map {|l| l.user} 

当然,对每个like的数据库进行查找,如果您有数百个用户,则可能希望避免这种情况。

因此,更复杂的方法是通过user_id执行单个查询以获取所有用户:

 User.find(dailypost.likes.map {|l| l.user_id}) 

这将为您提供一个用户列表,这取决于您使用它做什么。 如果您只想要HTML列表,请尝试以下方法:

 
    <% dailypost.likes.each do |l| %>
  • <%= link_to(l.user.name, l.user) %>
  • <% end %>

这依次查看每个,然后询问它的用户,然后询问用户的名称。