Rails 中 phone 个数字的自定义验证

Custom Validation for phone numbers in Rails

我在 rails 中遇到自定义验证问题。我想验证是否只有数字被放入他们在下拉列表中选择拨号的字段中。

到目前为止我的代码

validate :validate_numericality_of_dial_arg

def validate_numericality_of_dial_arg
    if action_type == "dial"
      return action_dst =~ /^\d+$/
    else
      errors.add(:base, "must be numbers")
    end
end

现在,即使用户输入数字,我也会收到错误消息,提示必须是数字

如果你不想坚持使用自定义验证器,你总是可以使用一些rails魔法:

## app/model.rb
validates :action_dst, numericality: true, if: -> {action_type == "dial" }