我有一个如下所示的数据结构(矩阵):
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"
我该怎么做?
答案 0 :(得分:3)
current_user.watchlists.map(&:tags_array).flatten.uniq.sort
更好的是,如果可以,请User has_many :tags, :trough => :watchlists
然后:
current_user.tags.order_by(:name)