L oop в структурированных данных в рельсах - PullRequest
0 голосов
/ 13 июля 2020

Я пытаюсь использовать структурированные данные в рельсах, но они не работают должным образом. Ниже мой код:

<script type="application/ld+json">
<%=
{
  "@context": "http://schema.org",
  "@type": "FAQPage",
  "mainEntity": @faq[:lists].each do |item|
    item[:list].map do |list|
      {
        "@type": "Question",
        "name": list[:heading],
        "acceptedAnswer": {
          "@type": "Answer",
          "text": list[:desc]
        }
      }
    end
  end
}.to_json.html_safe
%>
</script>

Что я делаю?

1 Ответ

1 голос
/ 13 июля 2020

Если вы хотите, чтобы mainEntity был простым массивом (а не массивом массивов), вы можете попробовать следующее:

<script type="application/ld+json">
<%=
{
  "@context": "http://schema.org",
  "@type": "FAQPage",
  "mainEntity": @faq[:lists].map do |item|
    item[:list].map do |list|
      {
        "@type": "Question",
        "name": list[:heading],
        "acceptedAnswer": {
          "@type": "Answer",
          "text": list[:desc]
        }
      }
    end
  end.flatten # <===== array[array] --> array
}.to_json.html_safe
%>
</script>

См .: https://apidock.com/ruby/Array/flatten

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...