我有一个场景,如果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
我的问题是有更清洁的方法,所以我不必使用除非/否
答案 0 :(得分:1)
为此,您可以结合使用 tap
和 json.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