ruby-on-rails - Ruby on Rails 正则表达式

标签 ruby-on-rails ruby

我在模型中有这些语句:

before_save :add_http

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

我已经检查了控制台中的正则表达式,它似乎是正确的,但是当“url”保存到数据库时,“http://”尚未添加。有什么想法吗?

最佳答案

不确定这对您是否重要,但您的正则表达式不适用于 https URL。这应该可行:

def add_http
  self.url += "http://" if self.url.match(/^https?\:\/\/.+$/).nil?
end

关于ruby-on-rails - Ruby on Rails 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/840690/

相关文章:

ruby-on-rails - rails 小号 : undefined method `symbolize_keys'

ruby-on-rails - 如何为开发和生产指定不同版本的 gem

ruby-on-rails - 未找到 authenticate_with_http_token 方法

android - Ruby Selenium 无法从安卓图片库中选择图片

ruby-on-rails - rails : Is there a built translation for "ago"?

jquery - 如何将 'html element' 添加到 Rails Controller 的 View 中?

ruby-on-rails - 相当于 htmlspecialchars_decode 的 Ruby

ruby-on-rails - 在 Ruby 中从一个对象映射到另一个对象

ruby-on-rails - 放与幂等

ruby-on-rails - Rails 4 Devise 3.1.1 ActionController::UnknownFormat 在 Devise::RegistrationsController#new