Rails:Refactoring - json [“data”] [“counts”] [“followed_by”]如果json&& json [“data”]&& json [“data”] [“计数”]&& JSON [ “数据”] [ “计数”] [ “followed_by”]

时间:2015-09-26 21:46:44

标签: ruby-on-rails refactoring

问题几乎在标题中。重构下面的东西的最佳方法是什么?

json["data"]["counts"]["followed_by"] if json &&  json["data"] && json["data"]["counts"] && json["data"]["counts"]["followed_by"]

除非nil存在,否则我想返回json["data"]["counts"]["followed_by"]

2 个答案:

答案 0 :(得分:1)

您可以使用try

json.try(:[], 'data').try(:[], 'counts').try(:[], 'followed_by')

答案 1 :(得分:1)

我倾向于长tryandand gem链,例如,

 json.andand['data'].andand['counts'].andand['followed_by']

IMO它看起来更好。