Dru*_*Dru 2 ruby regex model-view-controller ruby-on-rails ruby-on-rails-3
我想检查用户提交的URL与正则表达式,如果url不以http://或https://开头,那么我想先将http://添加到开头然后保存它.
我有一些代码,但我不知道如何将它合并到我的应用程序中.这段代码会起作用吗?并且我会在允许用户创建链接之前将其合并到我的应用程序中以检查URL.
我已经附上了下面的代码和文件.谢谢
def add_http(link)
if (link =~ /http[s]?:\/\//)
link
else
"http://#{link}"
end
end
Run Code Online (Sandbox Code Playgroud)
控制器https://gist.github.com/1279576
修改了一下代码.这有效
before_save do |link|
link.url = "http://#{url}" unless link.url=~/^https?:\/\//
end
Run Code Online (Sandbox Code Playgroud)
感谢@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
Run Code Online (Sandbox Code Playgroud)
这个想法很好.我会这样写,但是:
def add_http uri
uri =~ %r(https?://) ? uri : "http://#{uri}"
end
Run Code Online (Sandbox Code Playgroud)
更简单,没有倾斜的牙签!:-D
| 归档时间: |
|
| 查看次数: |
2064 次 |
| 最近记录: |