【发布时间】:2013-01-03 16:16:38
【问题描述】:
我正在开发一个应用程序,但我遇到了以下代码。
我有一组链接,其中包含用户在表单中发布的一些链接。
比如说我的数组是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
有人可以给我解决这个问题的方法吗?提前谢谢...
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3