如何从Activerecord中的分割列获取数组

时间:2014-09-16 13:12:48

标签: ruby-on-rails activerecord

我有类似的东西

posts = Post.all
posts[1].tags => "one, two, three"
posts[2].tags => "two, three, four"
posts[3].tags => "three, four, five"

如何获得

["one", "two", "three", "four", "five"]

2 个答案:

答案 0 :(得分:0)

试试这个:

Post.all.map { |post| post.tags.split(', ') }.flatten.uniq

或者,如果您不想将整个模型加载到内存中:

Post.pluck(:tags).map { |tags| tags.split(', ') }.flatten.uniq

答案 1 :(得分:0)

您也可以使用collect而不是map

Post.all.collect {| post | post.tags.split(',')} .flatten.uniq