这个简单的方法只需使用安全导航操作符运行status
方法。
def current_status
account&.status
end
但是,瑞克报告了这个警告:
MyClass#current_status performs a nil-check [https://github.com/troessner/reek/blob/master/docs/Nil-Check.md]
我还从thinkbot验证了this post,但对于一个安全的导航操作员来说,它似乎“太多了”。
Ruby 2.3.1
答案 0 :(得分:2)
链接post中“示例4”的建议很冗长但非常好:
account&.status
如果对你来说“太多”, <div ng-hide="loading" ng-repeat="prov in providers">
<div data-toggle="collapse" style="position:relative;font-weight:bold;" data-target="#collapse-{{$index}}">{{prov.name}}
<div id="collapse-{{$index}}" class="collapse">
<div ng-repeat= "p in prov.subnets">
<div class="col-sm-7 col-md-7" style="font-weight:normal;font-size:90%">
{{p.zone}}
</div>
<div class="col-sm-5 col-md-5"><progress-bar></progress-bar></div>
</div>
</div>
</div>
</div>
可能就好了。
无论你做什么:你都需要尽可能测试你的代码!
答案 1 :(得分:0)
好吧,tell-dont-ask
看起来还不错,但是Example 4
看起来像是解决这个特定情况的矫kill过正。
@andredurao我认为,出于某种原因,reek
可以通过此替代方法通过检查:
def current_status
return unless account
account.status
end