2012-01-01 152 views
1

我有一个数据结构(矩阵),如下所示:访问红宝石矩阵

ruby-1.9.2-p290 :060 > current_user.watchlists.map{|l|l.tags_array} 
=> [[], [], ["tag1", "tag2", "tag3"], [], [], ["tag2", "tag3"], [], [], ["tag4"], []] 
ruby-1.9.2-p290 :061 > 

我要遍历结构得到这样的结果:

"tag1" "tag2" "tag3" "tag4" 

哪有我这么做?

回答

3
current_user.watchlists.map(&:tags_array).flatten.uniq.sort 

更妙的是,如果你能,使User has_many :tags, :trough => :watchlists然后:

current_user.tags.order_by(:name) 
+0

哇,令人印象深刻!许多thx。 – 2012-01-01 13:34:15