Ruby on rails ruby rails模型url验证
经过一系列研究和尝试不同的宝石,我最终得出以下结论:Ruby on rails ruby rails模型url验证,ruby-on-rails,validation,activerecord,Ruby On Rails,Validation,Activerecord,经过一系列研究和尝试不同的宝石,我最终得出以下结论: validates :url, presence: true, length: { maximum: 245 }, format: { with: URI.regexp(%w(http https)), message: :bad_url_format } 这将正确验证http://和https://前缀,但它允许任何类型的域扩展,例如 这算正常吗 是的,这对于UR
validates :url,
presence: true,
length: { maximum: 245 },
format: { with: URI.regexp(%w(http https)), message: :bad_url_format }
这将正确验证http://和https://前缀,但它允许任何类型的域扩展,例如
这算正常吗 是的,这对于URL验证来说是正常的。考虑到最近超过100个TLD,以及该列表增长的可能性,尝试强制执行允许的TLD列表将非常麻烦和脆弱。是的,这对于URL验证来说是正常的。考虑到最近超过100个TLD,以及该列表增长的可能性,尝试强制执行允许的TLD列表将非常麻烦和脆弱。如果您真的想验证域扩展,我将按照这一思路做一些事情 使用自定义验证
validate :correct_url_extension
EXTENSIONS = %w(com org gov blah foo blah bar)
def correct_url_extension
ext = url.split(".")[-1] #extension should always be at the end (parse here)
return EXTENSIONS.include?(ext) ? true : false
end
如果您真的想验证域扩展,我会按照下面的思路做一些事情 使用自定义验证
validate :correct_url_extension
EXTENSIONS = %w(com org gov blah foo blah bar)
def correct_url_extension
ext = url.split(".")[-1] #extension should always be at the end (parse here)
return EXTENSIONS.include?(ext) ? true : false
end