我正在开发一个应用程序,我遇到了以下代码。
我有一组链接,其中包含用户在表单中发布的一些链接。比如说我的数组是bunch1 = ["google.com","http://yahoo.com"]
现在,在将它们存储到数据库之前,我需要确保每个链接的开头都添加了“http://”,因为我的 ActiveRecord 对象中有“验证:”逻辑。
所以我的逻辑是我将遍历数组并检查数组中每个链接之前是否存在“http://”字符串段。很明显,我必须在数组中的“google.com”之前添加“http://”字符串段。
所以我写了这样的代码:
bunch2=bunch1.map { |y| y="http://"+y }
但它会创建一个像 bundle2=["http://google.com","http://http://yahoo.com"] 这样的 bundle2 数组
如您所见,它在 "http://yahoo.com" 之前添加了一个额外的 "http://" 。
为了解决这个问题,我修改了上面的代码,如下所示:
bunch2 = bunch1.select { |x| x !~ /http/ }.map { |y| y="http://"+y }
但它会生成一个类似
bunch2 = ["http://google.com"
] 的数组,因为带有 select 方法的正则表达式正在消除 yahoo.com
有人可以给我解决这个问题。提前致谢...