在rails上的ruby中进行url验证

时间:2010-06-08 11:32:46

标签: ruby-on-rails

1)网址字段也应该接受网址为“www.abc.com”。如果用户输入这样的url,它应该自动附加“http://”,导致数据库中保存的值为“http://www.abc.com”。如果用户输入url为“http://www.xyz.com”系统,则不应附加“http://”。用户应该能够使用“https://”保存网址。 ruby on rails的代码是什么?

2 个答案:

答案 0 :(得分:1)

此代码有效:

def validate
  if !self.external_url.blank? && self.external_url != "external url"
    if self.external_url.match(/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix).nil?
      if self.external_url.match(/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix).nil?
        self.errors.add :base, 'External url is invalid' #message is changed by Hemant
      else
        self.external_url = "http://"+self.external_url
      end
    end
  end
end

答案 1 :(得分:0)

不是寻求帮助的好方法,这就是为什么我怀疑你已经被投票两次了!

我建议你先看看before_validation,validates_format_of和正则表达式。了解如何继续使用这些内容,如果遇到问题,可能会发布任何更新。

PS:

prepend =“附加到数据的开头” append =“附加到数据的末尾”