2013-04-24 100 views
1

我无法找到两个数组相交的简单表单。最终目标是找到两个电子邮件数组的交集,但现在我只是用整数进行测试。一切工作在控制器中,如果我在视图中硬编码数组,我会得到正确的结果。下面是我的代码找到数组的交集

Rails的控制台,一切都是犹太:

1.9.3p374 :011 > _a 
=> [1, 2, 3, 4] 
1.9.3p374 :012 > _b 
=> [1, 2, 1, 1, 1] 
1.9.3p374 :013 > c = _a & _b 
=> [1, 2] 

当我试图从表单传递相同的价值观,我得到一个空数组结果(我传递两个数组进入查看,以确保他们在那里

控制器:

def intersect 
    @array1  = [params[:a]] 
    @array2  = [params[:b]] 
    @intersection = @array1 & @array2 
    end 

代码在浏览:

Array 1: <%= @array1 %> <br> 
Array 2: <%= @array2 %><br> 
Intersection: <%= @intersection %> 

结果在浏览器中:

Array 1: ["1,2,3,4,5"] 
Array 2: ["1,2,2,3,3"] 
Intersection: [] 

因为我能得到这个工作,硬编码的,我知道我在做什么newbish!任何帮助都超出欢迎!

回答

9

您的阵列每个都包含一个单独的元素,它是字符串"1,2,3,4,5"。您可能需要一个包含5个元素的数组([1,2,3,4,5])。你可以用splitting这样做,用逗号分组:

@array1 = params[:a].split(',') 
@array2 = params[:b].split(',') 

@intersection = @array1 & @array2 
#=> ["1", "2", "3", "4", "5"] 
+0

YTMND !!!!我怎么没有意识到这一点? – jahrichie 2013-04-24 00:33:49