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の解析が重要な場合は、UTF-8文字、正規化、およびコンテキストに応じて重要になる可能性のあるその他のエッジケースを処理するaddressableなどのrubyの標準URI実装の代替案を検討することをお勧めします。

これも参照してください:URLが有効なrubyであるかどうかを確認してください

于 2012-09-04T04:51:05.080 に答える