在jbuilder块中将json属性设置为nil

时间:2016-06-30 22:03:53

标签: json ruby-on-rails-3 jbuilder

我有一个场景,如果jbuilder块中的对象值为nil,我想将json属性设置为nil:

我现在如何做的例子:   unless obj.details.nil? json.details do |json| json.value1 obj.details.value1 json.value2 obj.details.value2 end else json.details nil end 我的问题是有更清洁的方法,所以我不必使用除非/否

1 个答案:

答案 0 :(得分:1)

为此,您可以结合使用 tapjson.nil!

json.details do
  obj.details&.tap do |details|
    json.value1 details.value1
    json.value2 details.value2
  end || json.nil!
end

json.details do
  obj.details.tap do |details|
    return json.nil! if details.nil!

    json.value1 details.value1
    json.value2 details.value2
  end
end