如何列出喜欢给定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
{ :method => :delete }, remote: true do |f| %>
最简单的理解方法是将每个人都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 %>
这依次查看每个,然后询问它的用户,然后询问用户的名称。