我有兴趣使用中间人作为一个网站来组织在线课程,因此我想修改中间人的博客系统按日期排序博客文章的方式。我想把它按章节号和课号分类。
所以与其把最新的文章放在第一位,不如把第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/