バリデータに名前を付ける必要がありますUrlValidator
( camelized の結果'url'
):
# Validator for the `url` attribute
class UrlValidator< ActiveModel::EachValidator
def validate_each(record, attribute, value)
# to be implemented
end
end
def Foo < ActiveRecord::Base
validates :url, :presence => true
end
ドキュメントへのリンク
または、 name に固執するにはURLValidator
、次を使用できますvalidates_with
。
class URLValidator< ActiveModel::EachValidator
def validate(record)
# check on record.url, to be implemented
end
end
def Foo < ActiveRecord::Base
validates_with URLValidator
end
またはより一般的なバージョン (属性の名前が常にではない場合url
)
class URLValidator< ActiveModel::EachValidator
def validate(record)
value = record.send(options[:on])
# check value, to be implemented
end
end
def Foo < ActiveRecord::Base
validates_with URLValidator, :on => :url
end