Вы всегда можете сделать собственный валидатор (например, с помощью метода validate
).
Это может выглядеть примерно так:
class MyModel < ActiveRecord::Base
validate :link_is_unique
def link_is_unique
#Clean up the current link (removing trailing slashes, etc)
link_to_validate = self.link.strip.gsub(/\/$/,'')
# Get the current count of objects having this link
count = MyModel.count(:conditions => ['link = ?', link_to_validate])
# Add an error to the model if the count is not zero
errors.add_to_base("Link must be unique") unless count == 0
end
end
Затем можно добавить другую логику для очистки ссылки (т. Е. Проверить http://, www и т. Д.)