更改rails模型中的验证顺序

时间:2013-06-20 03:41:07

标签: ruby-on-rails ruby validation model

我有一个链接模型,用于存储Web上页面的链接。其中一个字段是url - 在该字段上我正在尝试执行几个验证,如果形成不正确,还会将其更改为有效的URL。

例如test.com将更改为http://test.com。我还构建了一个自定义验证器来检查它是否是一个有效的URL,但顺序是完全错误的,所以它在我有机会添加http位之前就开始了。但是,如果该字段为空,则http会在过早发射而不是告诉用户他们需要输入内容。

目前我的验证工具如下:

before_validation :add_http
validates :url, :presence => true, :allow_nil => false, :allow_blank => false, :url => true

我确信有更好的方法来实现这一目标。我认为理想的流程应该是:

  1. 检查字段是否存在,空白或为零
  2. 检查其是否为有效网址
  3. 如果网址缺少
  4. ,请将http://添加到网址的开头
  5. 再次检查它现在是否为有效网址(根据步骤2和3的时间安排,不确定是否需要此步骤)

0 个答案:

没有答案