您将如何重构此代码,以检查用户是否添加了4位以上的PIN码,从而使代码尽可能短?
def has_pin?
return self.pin.to_i > 1000 rescue nil
false
end
理想情况下,用户创建时无需使用AR验证,因为它们最初是没有PIN的,但是在某些特定情况下可以选择稍后添加。
PS:出于某种原因,PIN会存储为字符串。
答案 0 :(得分:2)
我会选择:
def pin_valid?
pin.present? && pin.match?(/\A\d{4,}\z/)
end
您为什么要使代码尽可能短?我一直希望尽可能使代码易于理解。