我已经尝试阅读一些关于重构的教程,但我正在为条件判断而苦苦挣扎。我不想使用三元运算符,但也许这应该在方法中提取?还是有使用 map 的聪明方法?
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/