MongoId rails3,获取内部数组元素

时间:2014-06-17 10:23:23

标签: ruby-on-rails ruby mongodb mongoid

我有2个模特,Kid和friend_list。对于我使用的孩子:

k = Kid.where(email: "adfadf@adfadsfa.com").first

然后,为了获取朋友列表,我输入:

k.friend_list

我得到了:

[#<FriendList _id: 5305cb6485216d2689004785, _type: nil, name: "Friends", members: ["5374a1f320db90054c0000ea", "537c63ea20db9040d2000332"], kid_id: BSON::ObjectId('5305cb6285216d2689004742'), teacher_id: nil>]

但我只需要“成员”。

我试过

k.friend_list.members,但我得到

NoMethodError: undefined method `members' for
#<Array:0x007fcf4b013138> from /Users/jeanosorio/.rvm/gems/ruby-1.9.3-p484@blabloo/gems/mongoid-2.8.1/lib/mongoid/criteria.rb:387:in
`method_missing'

我怎样才能获得成员数组?

提前致谢。

1 个答案:

答案 0 :(得分:1)

似乎friend_list会返回Array的{​​{1}}。

您可以使用map创建一个由FriendList getter的值组成的新列表:

members

或者,如果您只想在每个k.friend_list.map(&:members) # => [["5374a1f320db90054c0000ea", "537c63ea20db9040d2000332"]] 中使用一个FriendList,则应将模型更改为单个Kid对象。

对于当前模型,您还可以执行以下操作:

FriendList