2016-08-18 80 views
0

我在show.html.erb下面的代码片段包括Rails应用程序的动态JSON-LD标记

<script type="application/ld+json"> 
{ 
    "@context": "http://schema.org", 
    "@type": "Person", 
    "name": "<%= @person_name %>", 
    "logo": "<%= @person_img_url %>", 
    "membersOf":[ 
    { 
    <%= @person_orgs.each do |group| %> 
     "@context": "http://schema.org", 
     "@type": "Organization", 
     "name": "<%= group[:name] %>" 
     "logo": "<%= group[:img_url] %>", 
     "url": "https://siftery.com/groups/<%= group[:handle] %>" 
    <% end %> 
    } 
    ] 

} 

我得到membersOf[{}{}{}]不会变成是一个输出数组,而不是一个缺少逗号的字符串。我应该如何纠正,使membersOf[{},{},{}]

回答

0

使用.map代替每个这样它会回报你一个数组

而且移动循环内的{}花括号

{ 
    "@context": "http://schema.org", 
    "@type": "Person", 
    "name": "<%= @person_name %>", 
    "logo": "<%= @person_img_url %>", 
    "membersOf": <%= @person_orgs.map do |group| %> 
        { 
        "@context": "http://schema.org", 
        "@type": "Organization", 
        "name": "<%= group[:name] %>" 
        "logo": "<%= group[:img_url] %>", 
        "url": "https://siftery.com/groups/<%= group[:handle] %>" 
        } 
       <% end %> 
}