我有一個對象數組,我需要根據子對象average_score
屬性對它們進行排序。我試着sort!
但這似乎並沒有工作,我不知道我可以在這裏使用Rails的協會:按子對象排序對象數組
collection.sort! do |a, b|
a.children.where(:user_id => current_user.id).first.average_score <=> b.children.where(:user_id => current_user.id).first.average_score
end
任何人都可以建議我如何才能做到這一點?
你期望的結果是什麼結果呢?或者你得到一個錯誤? – 2012-03-21 20:49:11
你應該使用sort_by,但Ruby會慢得多,SQL ... – tokland 2012-03-21 20:49:54
我希望它根據孩子的average_score排序集合。我得到的錯誤是'nil:NilClass'的未定義方法'average_score'。我認爲這是因爲集合中的一些對象沒有孩子,所以我試圖允許零結果,但零成功 – DanS 2012-03-21 20:51:59