rails控制器中的数组迭代:它只放置最后一个值

时间:2016-12-14 15:48:45

标签: ruby-on-rails arrays loops controller

我必须在我的rails控制器中迭代数组,但它只返回它的最后一个值:

array = ["a", "b", "c"]

 array.each do |arr|
   @arry = arr
 end

@arry给了我“c”,但我希望它给我一个b c

所以,当我在每次迭代中添加一个API方法时,它只给出了一个“c”值的结果,但是我希望得到所有这些的结果。

仅供参考:当我在视图中迭代此数组时,一切正常

2 个答案:

答案 0 :(得分:1)

array.each do |el|
  @arr = el
end

您将el保存为@arr的每个循环(覆盖之前的值),因此在完成每个循环后,您有最后一个el。如果你想对每个元素做一些事情,你可以这样做。

@arr = array.map { |el| el }

或只是

@arr = array

答案 1 :(得分:0)

使用map枚举器:

@arry = array.map { |arr| arr }

https://ruby-doc.org/core-2.2.0/Array.html#method-i-map