如何在"application/ld+json"中循环访问记录



我正在尝试创建一个"ItemList"作为 schema.org 结构化数据标记的一部分。对于 itemList,我无法遍历@posts以使用:plain:cdata以编程方式创建列表。

- content_for(:header) do
%script{:type => "application/ld+json"}
:plain
{
"@context": "https://schema.org",
"@graph":
[
{
"@context": "http://schema.org",
"@type": "ItemList",
"itemListElement":
[
- @posts.each do  |post|
{
"@type": "ListItem",
"position": 1,
"item":
{
"@id": "https://example.com/post",
"name": "#{post.title}"
}
}
]
}
]
}

有没有人成功地做到这一点,或者可以建议一种替代方案来仍然填充itemList?

在视图外部,为 JSON 数据创建常规 Ruby 哈希。

然后,您的视图将如下所示

%script{ :type => "application/ld+json" }
!= my_ruby_hash.to_json

最新更新