仅在存在时将一种属性收集到数组中

时间:2013-03-11 08:41:40

标签: ruby-on-rails ruby ruby-on-rails-3.2

所以我的问题是,有一个Object.weight。

我想找到user_id为@ user.id的所有对象,然后将所有Object.weight放入 属性到数组中,只有属性不是nil。

@o = Object.find.where(:user_id => @user.id)
@a << @o.weight.where(:weight true)

然后我想列出阵列中的所有内容,并使用','分隔符。

一切都很好!

2 个答案:

答案 0 :(得分:1)

Object.where(:user_id => @user.id).collect(&:weight).compact

collect从数组项中获取所有元素,compact从数组中删除所有nil个对象。

对于视图:

arr.join(", ")

答案 1 :(得分:0)

@weights = Record.where(user_id: @user.id).where('weight IS NOT NULL').map(&:weight)
puts @weights.join(',')