如何在jbuilder中按数据分隔模板

时间:2017-02-21 05:38:24

标签: ruby sinatra padrino jbuilder

我想用jbuilder制作以下数据 如何将jbuilder分开?

data: [{
  type: "top"
  logo: "logo.png"
  title: "title"
  },{
  type: "nav"
  background: "bg.png"
  content: "<div> Welcome </div>"
  },{
  type: "footer"
  content: "Copyright: xx"
  }
]

我这样做了,但无法运行

data.jbuilder

json.set! :result do
  json.array! data do |item|
     case item.type
     when 'top'
       json.partial! '_top', item: item
     when 'nav'
       json.partial! '_nav', item: item
     when 'footer'
       json.partial! '_footer', item: item
     else 
       return nil
  end
end

_top.jbuilder

json.logo   item.logo
json.title  item.title

_nav.jbuilder

json.background item.background
json.content    item.content

_footer.jbuilder

json.content item.content

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

当你打电话给partials时,你不需要_,只要它在不同的文件夹或名称中,如果在同一个文件夹中,就给出路径。

json.partial! 'top', item: item
json.partial! 'nav', item: item
json.partial! 'footer', item: item