使用Rails创建数组

时间:2013-06-17 17:02:22

标签: arrays ruby-on-rails-3 mode

我正在尝试为将来的搜索创建一个唯一值数组。

我正在使用查询BBOrder.uniq.pluck(:trader) - >其中有7个值,我想添加一个'ALL'选项,因此搜索可以返回所有结果。

所以我尝试了两种方法,但它们产生了几乎所需的结果,并且我无法在不进行冗余变量创建的情况下将它们组合在一起,所以我想知道问题是什么以及导致这种行为的原因。

第一种方法:

@unique_traders = ["ALL"] << BBOrder.uniq.pluck(:trader) #this returns [ALL, and first value of the search]

第二种方法:

@unique_traders = BBOrder.uniq.pluck(:trader) << ["ALL"] #this returns all proper values, but 'ALL' is at the end of list, I want it to be at the top.

同样,我不想循环所有值并逐个插入,我想知道为什么会出现这种情况以及如何解决它。

1 个答案:

答案 0 :(得分:3)

您需要+而不是<<来加入数组。

@unique_traders = ["ALL"] + BBOrder.uniq.pluck(:trader)

并回答您的使用问题:

@unique_traders = ["ALL"] << BBOrder.uniq.pluck(:trader) 

首先将['All']创建为一个数组,然后创建一个BBOrder交易者数组,并将新数组作为元素添加到旧数组['All', [array of traders]]