我正在尝试为将来的搜索创建一个唯一值数组。
我正在使用查询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.
同样,我不想循环所有值并逐个插入,我想知道为什么会出现这种情况以及如何解决它。
答案 0 :(得分:3)
您需要+
而不是<<
来加入数组。
@unique_traders = ["ALL"] + BBOrder.uniq.pluck(:trader)
并回答您的使用问题:
@unique_traders = ["ALL"] << BBOrder.uniq.pluck(:trader)
首先将['All']创建为一个数组,然后创建一个BBOrder交易者数组,并将新数组作为元素添加到旧数组['All', [array of traders]]