我有兴趣使用中间人作为一个网站来组织在线课程,因此我想修改中间人的博客系统按日期排序博客文章的方式。我想把它按章节号和课号分类。
所以与其把最新的文章放在第一位,不如把第1章-第1课放在第一位,等等。我现在可以通过颠倒每个文章的日期顺序,以一种老套的方式做到这一点。
有没有一个简单的方法来修改它的后排序方法如果不是,有没有办法像rail的初始化文件那样覆盖它?
谢谢!

最佳答案

通过Frontmatter提供章节和课程编号。
使用Ruby的sort_by能力接受要排序的字段数组。
这里有一些代码让你明白我的意思:

pages = [
  {
    chapter: 2,
    lesson:  1
  },
  {
    chapter: 1,
    lesson:  2
  },
  {
    chapter: 2,
    lesson:  2
  },
  {
    chapter: 1,
    lesson:  1
  }
]

pages.sort_by { |page|
  [
    page[:chapter],
    page[:lesson]
  ]
}

# => [
#      {"chapter"=>1, "lesson"=>1},
#      {"chapter"=>1, "lesson"=>2},
#      {"chapter"=>2, "lesson"=>1},
#      {"chapter"=>2, "lesson"=>2}
#    ]

现场演示:http://rubyfiddle.com/riddles/29e55

关于ruby - Middleman Blog-自定义排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26559234/

10-11 05:05