返回基于用户ID作为键的所有哈希值

时间:2015-10-15 05:16:06

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

我有一个哈希数组。这些哈希内部具有唯一的用户ID。我需要返回所有用户喜欢的内容:

p = Post.first
all_likes = p.likes

# This returns: [0][1][2] etc
# inside a hash looks like:
[0] #<Like:0x007f81d3dfb310> {
 id: => 4,
 user_id: => 1,
 like_sent: => 1 # this will always be one
}

我们假设all_likes有很多用户,我需要user_id: 1总共like_sent。怎么做到的?

all_likes.find {|f| f["user_id"] = current_user.id } # this returns one hash. I need to return all if more is found.

所以如果&#34; Jason&#34;喜欢帖子10次,我需要抓住他的总喜欢。 如何返回所有匹配的哈希。这是一个完美的问题。

1 个答案:

答案 0 :(得分:1)

尝试

all_likes.where 'user_id = ?', current_user.id

find方法有一些不同的语法,如下所示:

all_likes.find :all, :conditions => ['user_id = ?', current_user.id]

docs