我怎样才能让它发挥作用?使用!! 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
答案 0 :(得分:1)
如果你只是想让它运转起来,那么怎么样:
errors.add(:url, 'not valid') if (url =~ URI::regexp).nil?
但是如果解析url对你很重要,你可能想要考虑替换ruby的标准URI实现,例如addressable,它处理UTF-8字符,规范化和其他可能很重要的边缘情况,具体取决于背景。