0

我怎样才能让它工作?使用 !!URI.parse(url) 还是 self.url ?

class Idea < ActiveRecord::Base
  attr_accessible :body, :url
  validates :body, presence: true, :length => { :in => 6..240 }
  validates :body, uniqueness: true
  validates :url, presence: true
  validate :good_url
  require 'uri'
  def good_url
    errors.add(:url, 'not valid') unless URI.parse(url)
  end
end
4

1 回答 1

1

如果你只是想让它工作,那么如何:

errors.add(:url, 'not valid') if (url =~ URI::regexp).nil?

但是,如果解析 url 对您很重要,您可能需要考虑替代 ruby​​ 的标准 URI 实现,例如addressable,它处理 UTF-8 字符、规范化和其他可能根据上下文很重要的边缘情况。

另请参阅:检查 url 是否有效 ruby

于 2012-09-04T04:51:05.080 回答