我想根据正则表达式检查用户提交的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