Ruby on Rails регулярное выражение - PullRequest
2 голосов
/ 08 мая 2009

У меня есть следующие утверждения в модели:

before_save :add_http

protected
def add_http
  if (/^http\:\/\/.+$/.match(url)) == nil
    str = "http://" + url
    url = str
  end
end

Я проверил регулярное выражение в консоли, и оно кажется правильным, но когда 'url' был сохранен в БД, http://" не было добавлено. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 09 мая 2009

Не уверен, имеет ли это значение для вас или нет, но ваше регулярное выражение не будет работать с URL-адресами https. Это должно работать, хотя:

def add_http
  self.url += "http://" if self.url.match(/^https?\:\/\/.+$/).nil?
end
2 голосов
/ 08 мая 2009

Неважно, понял ...

protected
def add_http
  if (/^http\:\/\/.+$/.match(url)) == nil
    str = "http://" + url
    self.url = str
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...