ruby - Sort by doesn't sort when includes is used in rails -
i've got distance attribute in user model :
attr_accessor :distance so when calculate distance each user, , store in distance can sort them :
users.sort_by!(&:distance) and users sorted according distance appropriately. when include other associated methods i.e :
users.includes(:photo).sort_by!(&:distance) this doesn't sort users @ all, why this? how can sort distance include association well?
the ! in sort_by! method indicates object changed rather returns different object. when call users.includes(:photo) method returns different object. so, doing like:
users2 = users.includes(:photo) users2.sort_by!(&:distance) this why users object not sorted after call sort_by!. better way might be
users = users.includes(:photo).sort_by(&:distance)
Comments
Post a Comment