Add http(s) to URL if it's not there?

前端 未结 7 1953
抹茶落季
抹茶落季 2020-12-08 19:27

I\'m using this regex in my model to validate an URL submitted by the user. I don\'t want to force the user to type the http part, but would like to add it myself if it\'s n

7条回答
  •  清歌不尽
    2020-12-08 19:43

    Use a before filter to add it if it is not there:

    before_validation :smart_add_url_protocol
    
    protected
    
    def smart_add_url_protocol
      unless self.url[/\Ahttp:\/\//] || self.url[/\Ahttps:\/\//]
        self.url = "http://#{self.url}"
      end
    end
    

    Leave the validation you have in, that way if they make a typo they can correct the protocol.

提交回复
热议问题