ruby数组在rails控制器中表现得很奇怪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby数组在rails控制器中表现得很奇怪相关的知识,希望对你有一定的参考价值。

假设我有2个数组@ arr1 = [10,20,30,40] @ arr2 = [30,40,50,60]

在rails控制器中,我试图找到两个差异并根据它添加或删除记录。如果我在控制台简单的@diff1 = (@arr1 - @arr2)做我得到正确的结果[10,20]

如果我在rails控制器中做同样的事情,我得到整个@ arr1而不是@ diff1所以我尝试了简单的puts (@arr1 - @arr2)但是错误的结果这里是示例代码:

@associates = params[:associate_to]
      @coordinators = @guild.coordinators.pluck(:coordinator_id)

      @to_add = (@associates-@coordinators)

      @to_remove = (@coordinators-@associates)
      puts "first array"
      puts @associates
      puts "----"
      puts "second array"
      puts @coordinators
      puts "-----"

      puts "calculation"      
      puts (@associates-@coordinators)
      puts "result"
      puts @to_add

这是rails服务器的结果

enter image description here

我究竟做错了什么?

答案

这可能是因为一个数组包含整数而另一个包含字符串。尝试将其中一个数组的元素转换为string或int。

arr.map(&:to_i)
# or
arr.map(&:to_s)

以上是关于ruby数组在rails控制器中表现得很奇怪的主要内容,如果未能解决你的问题,请参考以下文章

为什么for循环在JavaScript构造函数中表现得很奇怪?[已关闭]

在类构造函数中将此指针传递给 CreateThread 在线程过程中表现得很奇怪

没有固定大小的容器中的垂直和水平居中文本在 Firefox 中表现得很奇怪

变换比例在 Safari 上表现得很奇怪

一个文件上的O_APPEND标志使read()系统调用在其他文件上表现得很奇怪

Scala中的TreeMap键和迭代