验证url |前缀http://.



我想根据正则表达式检查用户提交的url,如果url不以http://或https://,开始,那么我想在开头加上http://,然后保存它。

我有一些代码,但我不知道如何将其纳入我的应用程序。这个代码会工作吗?我会把它合并到我的应用程序中,在允许用户创建链接之前检查url吗?

我附上了下面的代码和文件。由于

def add_http(link)
  if (link =~ /http[s]?:///)
    link
  else
    "http://#{link}"
  end
end
控制器https://gist.github.com/1279576

_form https://gist.github.com/1279580

模型https://gist.github.com/1279582

修复了代码。This works

  before_save do |link|
      link.url = "http://#{url}" unless link.url=~/^https?:///
  end 

谢谢你的指导@bandito &@rubyprince

你可以把它放到你的模型中

class Link < ActiveRecord::Base
  attr_accessible :title, :url
  before_save :sanitize_url
  private 
  def sanitize_url
    if url_changed?
     url = "http://#{url}" unless url =~ /^https?:///
    end
  end 
end

这个想法很好。不过,我想这样写:

def add_http uri
  uri =~ %r(https?://) ? uri : "http://#{uri}"
end

更简单,没有倾斜的牙签!: - d

最新更新