我想检查用户提交的针对正则表达式的URL,如果url不以http://或https://开头,那么我想先将http://添加到开头然后保存它。
我有一些代码,但我不知道如何将它合并到我的应用程序中。这段代码有用吗?并且我会在允许用户创建链接之前将其合并到我的应用程序中以检查URL。
我已经附上了下面的代码和文件。感谢
def add_http(link)
if (link =~ /http[s]?:\/\//)
link
else
"http://#{link}"
end
end
Controller https://gist.github.com/1279576
答案 0 :(得分:8)
修改了一下代码。这工作
before_save do |link|
link.url = "http://#{url}" unless link.url=~/^https?:\/\//
end
感谢指导@bandito& @rubyprince
答案 1 :(得分:6)
您可以将它放在模型中
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
答案 2 :(得分:5)
这个想法很好。不过我会这样写的:
def add_http uri
uri =~ %r(https?://) ? uri : "http://#{uri}"
end
更简单,没有倾斜的牙签! :-D