【问题标题】:Set json attribute to nil within a jbuilder block在 jbuilder 块中将 json 属性设置为 nil
【发布时间】:2016-11-03 04:35:26
【问题描述】:

我有一个场景,如果 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 我的问题是有一种更清洁的方法可以做到这一点,所以我不必使用除非/否则

【问题讨论】:

  • 你找到更干净的方法了吗?
  • 从来没有。

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


【解决方案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

【讨论】:

  • 谢谢。有用的回应。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-01
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
  • 2011-12-15
相关资源
最近更新 更多