2013-03-11 46 views
0

所以我的問題是,有一個Object.weight。收集一類屬性到數組中,只有當存在時

我想查找所有對象,其中user_id是@ user.id,然後將所有Object.weight 屬性放入數組中,只有當屬性不爲零時。

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

然後我想列出所有那些從陣列中,用「」分隔符。

一切順利!

+0

沒有違法,但 「一切順利!」在考場給我一個問題紙的感受:) – 2013-03-11 08:45:16

+0

想着要寫什麼,下次也許只是'謝謝';) – 2013-03-11 08:48:46

+0

順便說一句,從來沒有經歷過這麼快速和精確的幫助,這是我的第一個問題:) – 2013-03-11 09:03:14

回答

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

collect取從陣列相關的所有元素和compact刪除該數組所有nil對象。

對於視圖:

arr.join(", ") 
+0

當您的日期存儲在數據庫中時,jvnill避免'nil's的解決方案是更好的解決方案。 – davidb 2013-03-11 08:52:18

0

嘗試

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

thx也是這樣 – 2013-03-11 09:02:24

相關問題