将哈希数组转换为数组

时间:2014-03-26 02:35:30

标签: ruby-on-rails ruby

当使用ActiveRecord集合代理返回的对象时,如果在视图中使用了一个循环,那么有时我只想转动其中一个散列'公共属性到数组中。我发现我做了很多,这导致看起来有些冗长:

 forum_roles = []

 @forum #=> [{id: 0, name: 'a'},{id: 1, name: 'b'}]

 @forum.each do |role|
    forum_roles << role.name
 end

 forum_roles #=> ['a','b']

只是想知道是否有更简单的方式来到['a','b']

1 个答案:

答案 0 :(得分:5)

当您有一组哈希

时使用Array#map
forum_roles = @forum.map { |role| role[:name] }
forum_roles # ['a','b']

更新:

使用ActiveRecord对象,@ vee发表了评论

@forum.map(&:name)

如果您有ActiveRecord Relation并且只需要列的数组,请使用pluck

@forum.pluck(:name)