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)
现在,我弹出错误提示说即使用户输入数字也必须是数字
如果您不想坚持使用自定义验证器,则可以始终使用一些rails magic:
## app/model.rb
validates :action_dst, numericality: true, if: -> {action_type == "dial" }
Run Code Online (Sandbox Code Playgroud)