我有一个场景,我想设置一个json属性为nil,如果它的对象值是nil在jbuilder块:
我现在如何做的例子:
unless obj.details.nil?
json.details do |json|
json.value1 obj.details.value1
json.value2 obj.details.value2
end
else
json.details nil
end
我的问题是是否有更简洁的方法来做到这一点所以我不必使用unless/else
您可以使用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