这是我的public.json.jbuilder
json.(@plantao, :data_referencia, :data_fim)
json.plantoes_locais @plantao.plantao_lotacoes do |plantao_local|
json.plantao_local(plantao_local,
:periodo_inicio, :periodo_fim, :servidor, :lotacao, :contato
) if plantao_local.dentro_periodo?
end
生成我的JSON时,由于我的条件
,在文件末尾会生成几个空{}{
"data_referencia": "2014-12-15T18:00:00.000-02:00",
"data_fim": "2014-12-18T08:00:00.000-02:00",
"plantoes_locais": [
{
"plantao_local": {
"periodo_inicio": "2014-12-16T08:00:00.000-02:00",
"periodo_fim": "2014-12-17T08:00:00.000-02:00",
"servidor": null,
"lotacao": null,
"contato": null
}
},
{
"plantao_local": {
"periodo_inicio": "2014-12-16T08:00:00.000-02:00",
"periodo_fim": "2014-12-17T08:00:00.000-02:00",
"servidor": null,
"lotacao": null,
"contato": null
}
},
{},
{},
{},
{},
{},
{},
{},
{}
]
}
如何删除这些空{}?
答案 0 :(得分:3)
答案 1 :(得分:2)
使用delete_if()
和empty?
删除空哈希。这样的事情应该有效:
json.(@plantao, :data_referencia, :data_fim)
json.plantoes_locais @plantao.plantao_lotacoes do |plantao_local|
json.plantao_local(plantao_local,
:periodo_inicio, :periodo_fim, :servidor, :lotacao, :contato
) if plantao_local.dentro_periodo?
end.delete_if(&:empty?)