我试着阅读了一些关于重构的教程,我正在努力学习条件。我不想使用三元运算符,但也许应该在方法中提取它?或者有一个聪明的方法来使用地图吗?
detail.stated = if value[:stated].blank?
nil
elsif value[:stated] == "Incomplete"
nil
elsif value[:is_ratio] == "true"
value[:stated] == "true"
else
apply_currency_increment_for_save(value[:stated])
end
最佳答案
如果您将这个逻辑移到一个方法中,由于早期的return
(和关键字参数),它可以变得更加清晰:
def stated?(stated:, is_ratio: nil, **)
return if stated.blank? || stated == "Incomplete"
return stated == "true" if is_ratio == "true"
apply_currency_increment_for_save(stated)
end
然后…
detail.stated = stated?(value)
关于ruby-on-rails - ruby -重构if else语句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35275608/