验证用户输入的PIN

问题描述 投票:0回答:1

您将如何重构此代码以检查用户是否添加了4位数的PIN,以便代码尽可能短?

def has_pin?
  return self.pin.to_i > 1000 rescue nil
  false
end

理想情况下,不会在用户创建时使用AR验证,因为它们最初是在没有PIN的情况下创建的,但在某些特定情况下可能会选择稍后添加它们。

PS:由于某种原因,PIN被存储为字符串。

ruby
1个回答
2
投票

我会选择:

def pin_valid?
  pin.present? && pin.match?(/\A\d{4,}\z/)
end

为什么你的目标是让代码尽可能短?我一直致力于让我的代码尽可能易于理解。

© www.soinside.com 2019 - 2024. All rights reserved.