-3

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

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

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

第一种方法:

@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.

同样,我不想循环所有值并一一插入,我想看看为什么会发生这种行为以及如何解决它。

4

1 回答 1

3

您无需+加入<<阵列。

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

并回答您的使用问题:

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

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

于 2013-06-17T17:05:42.427 回答