Ruby on rails 如何添加';这是一种不同模型的方法吗?
我有下面的语句,它按照员工在安置模型中的分数顺序返回安置Ruby on rails 如何添加';这是一种不同模型的方法吗?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有下面的语句,它按照员工在安置模型中的分数顺序返回安置 @placements.includes(:employee).order('points desc') class Placement < ActiveRecord::Base belongs_to :employee attr_accessible :employee_id, :average_score, :points 为什么不获取集合并在方法本身中对其进行排序?Bilal的意思是,您可以获取所有放置(假设模型名
@placements.includes(:employee).order('points desc')
class Placement < ActiveRecord::Base
belongs_to :employee
attr_accessible :employee_id, :average_score, :points
为什么不获取集合并在方法本身中对其进行排序?Bilal的意思是,您可以获取所有放置(假设模型名为Placement),例如
Placements=Placement.all.to_a
,您可以像任何数组一样操作它们。例如,按该员工函数排序将是placements.sort_by{| placement | placement.Employee.total_average_score}
。虽然通过查询也可能实现,但我只是解释如何直接访问集合。太棒了。谢谢您。还在学习。
class Employee < ActiveRecord::Base
has_many :placements
def total_average_score
averages = self.placements.pluck(:average_score)
averages.sum / averages.size.to_f
end
@placements.includes(:employee).order('points desc, total_average_score desc)