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