Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何添加';这是一种不同模型的方法吗?_Ruby On Rails_Ruby - Fatal编程技术网

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)