2015-09-05 37 views
1

多個記錄我有一個模型有相同的號碼,顯示一個以最低的價格

模型具有1場

  • 號碼價格
  • 價格

數量可以相同。我想要顯示所有Model-1記錄,但如果有兩個或多個具有相同編號的記錄,我希望它只顯示具有最低價格的記錄。

例如,如果模型1,所有的結果是

  • 86758號 - 價格= 20
  • 86758號 - 價格= 50
  • 23213號 - 價格= 120
  • 65656號 - 價格= 30
  • 65656號 - 價格= 60

我想瓦ERE我有相同數目多條記錄,顯示一個以最低的價格,像

  • 86758號 - 價格= 20
  • 23213號 - 價格= 120
  • 65656號 - 價格= 30

我將如何在Controller中編寫查詢。

回答

1

假設您的型號名稱是模態,然後寫出這樣的查詢:

results = Modal.select('number, min(price) as min_price').group('number')

循環遍歷查看結果

<%= results.each do |result| %> 
    <%= result.number %> 
    <%= result.min_price %> 
    <%= end %> 
+0

如何訪問整個對象,這是顯示PART NUMBER –

+0

@SajjadMurtaza我不理解你的評論。 –

1

我會做一個模型範圍在那裏你可以使用你的控制器

它可能會像這樣

scope :number_with_lowest_price, -> {group(:number).having('price = min(price)')} 

這種方式,您可以在模型中使用此在任何你需要使用它

Model1.number_with_lowest_price 

這應該呈現的結果,你會期望

+0

這給我 PG :: DatatypeMismatch:錯誤:HAVING的參數必須是類型布爾值,而不是類型數字 –

+0

而價格:十進制 –

+0

我道歉,我忘了把它放在匹配語句中。我在我的答案中編輯了有關部分。試試看,讓我知道如果這有效。謝謝 –

相關問題