首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails模型中的多层排序

Rails模型中的多层排序
EN

Stack Overflow用户
提问于 2013-02-03 17:58:50
回答 1查看 688关注 0票数 1

我很难弄清楚如何用我的模型中的范围方法来编写多层排序,它可以对模型的属性以及相关的子模型的属性进行排序。

更具体地说,我有以下模型,每个模型都是上一个模型的一个相关子模型(为了简洁起见,我排除了其他模型方法和声明):

代码语言:javascript
复制
class Course < ActiveRecord::Base 
  has_many :questions
  # would like to write multi-layer sort here 
end 

class Question < ActiveRecord::Base 
  belongs_to :course, :counter_cache => true
  has_many: :answers

end 

class Answer < ActiveRecord::Base 
  belongs_to :question, :counter_cache => true
end

我想先通过questions_count (通过我的counter_cache)对课程进行排序,然后通过answer_count对进行排序,最后通过created_at对课程进行排序,并想知道如何将所有内容组合到一个单独的作用域方法中,以放入自己的Course模型中。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 18:41:04

如图所示(使用已连接的模型创建作用域):problem: activerecord (rails3), chaining scopes with includes

在这里(使用多列排序):Ruby on Rails: how do I sort with two columns using ActiveRecord?

最后,这里(按关联模型排序):Rails 3. sort by associated model

你可以这样做:

代码语言:javascript
复制
scope :complex_sorting, lambda {
    joins(:questions)
    .order('questions_count DESC, question.answers_count DESC, created_at DESC')
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14675444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档