我正在尝试改变self.rank:
def self.rank(courses)
courses.sort_by do |course|
[course.list_order ? course.list_order : Float::INFINITY,
course.upcoming? ? 0 : 1,
course.title
]
end
end
def upcoming?
start_date && start_date > Time.now.utc
end
进入范围,因为self.rank(courses)返回一个数组而不是一个activerecord范围。
当前进度(将更新直至完成):
范围:排名, - > {order(:list_order)}
可能的资源:
答案 0 :(得分:1)
scope :just_what_i_want, lambda { |course_id| where(:course_id => course_id) }
scope :ranked, lambda { |list_order| order(list_order ? list_order : Float::INFINITY).order('start_date DESC').order(:title) }
使用像:
Courses.just_what_i_want([1,2,3,4,5,6]).ranked('course_id')
我认为这应该有用吗?