about 2 years ago

假設OrderItem.all會把整個訂單的明細都吐出來,但我們只想找這筆訂單裡面food_name這個欄位的最多出現次數。

想法是可以先將這個欄位的東西,都倒進Array裡面,變成陣列之後相對好處理。

實際方法在Rails 3.2之後,有了更好的method,只需對OrderItem下

array = OrderItem.pluck(:food_name)

其結果就會只將所有food_name都倒進去Array

再來要抓出在陣列裡出現最多次數的Item,就可以用max_by

array.max_by { |i| o.count(i)}

來取得結果。

參考:

← 如何在Heroku上設定時區 [Ruby]神奇的method missing →
 
comments powered by Disqus