带中间人和 Contentful 的订购数据

Ordering data w/ Middleman and Contentful

我觉得我在这里吃了疯狂的药!我在网上找遍了,找不到解决办法...

问题:

我正在使用 contentful 和 middleman-contentful 来创建博客。我感兴趣的显示和排序的内容类型称为 "post"。到目前为止,我已经设法使用以下配置将所有 post 拉入 /data/blog/posts:

activate :contentful do |f|
    f.space = { blog: 'xxxxxxxx' }
    f.access_token = 'xxxxxxxxxxxxxxxxx'
    f.content_types = { posts: 'xxxxxxxx'}
end

注意:我故意遗漏了 ID 和令牌

问题是当我尝试使用以下命令在我的 .erb 文件中输出那些 post 时:

<% data.blog.posts.each do |id, post| %>
<h1><%= post.title %></h1>
<% end %>

这会产生一个包含 post 个图块的列表(如预期的那样),但输出似乎没有顺序。我希望默认情况下输出按创建日期排序。如何添加此订单或与此相关的任何其他订单?

PS,问题之一似乎是 data.blog.posts 是一个以 post ID 作为键的对象。这似乎有问题。谢谢你的帮助!我刚开始接触中间人,请原谅我的无知!

默认情况下,Contentful 不会为您的条目提供任何特定顺序。

您可以在 cda_query 配置参数中指定顺序。您可以在 contentful_middleman 文档的这一部分找到更多信息:https://github.com/contentful/contentful_middleman#configuration

因此您的配置块应该如下所示:

activate :contentful do |f|
  f.space = { blog: 'xxxxxxxx' }
  f.access_token = 'xxxxxxxxxxxxxxxxx'
  f.content_types = { posts: 'xxxxxxxx'}
  f.cda_query = { order: 'sys.createdAt' }
end

有关所有排序可能性的更多信息,您可以查看 Contentful Delivery API 文档:https://www.contentful.com/developers/docs/references/content-delivery-api/#/reference/search-parameters/order

希望你觉得这有用

这里基本上已经回答了这个问题。 https://github.com/contentful/contentful_middleman/issues/68#issuecomment-170520254.