валидация URL в ruby ​​на рельсах - PullRequest
0 голосов
/ 08 июня 2010

1) Поле URL также должно принимать URL как «www.abc.com». Если пользователь вводит URL-адрес подобным образом, к нему следует автоматически добавить «http://”, в результате чего значение сохраняется в базе данных как« http://www.abc.com”. Если пользователь вводит URL-адрес как «http://www.xyz.com”, система не должна добавлять« http://”. Пользователь должен иметь возможность сохранить URL с помощью «https://”. Какой код для него в ruby ​​на рельсах?

Ответы [ 2 ]

1 голос
/ 09 сентября 2010

Этот код работал:

def validate
  if !self.external_url.blank? && self.external_url != "external url"
    if self.external_url.match(/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix).nil?
      if self.external_url.match(/^[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(([0-9]{1,5})?\/.*)?$/ix).nil?
        self.errors.add :base, 'External url is invalid' #message is changed by Hemant
      else
        self.external_url = "http://"+self.external_url
      end
    end
  end
end
0 голосов
/ 08 июня 2010

Не лучший способ попросить о помощи, поэтому я подозреваю, что за вас дважды проголосовали!

Я бы предложил вам начать с рассмотрения before_validation, validates_format_of и регулярных выражений.Посмотрите, как вы справляетесь с ними, и, возможно, опубликуйте любые обновления, если вы застряли.

Ps:

prepend = "Присоединить к началу данных" append = "Присоединить к концуданных "

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...