Rails中电话号码的自定义验证

1 ruby validation ruby-on-rails customvalidator

我在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
Run Code Online (Sandbox Code Playgroud)

现在,我弹出错误提示说即使用户输入数字也必须是数字

Mar*_*ark 5

如果您不想坚持使用自定义验证器,则可以始终使用一些rails magic:

## app/model.rb
validates :action_dst, numericality: true, if: -> {action_type == "dial" }
Run Code Online (Sandbox Code Playgroud)