我有一个模特
Model-1有字段
数字可以相同。我想显示所有Model-1记录,但如果有两个或更多记录具有相同的编号,我希望它只显示具有最低价格的记录。
例如,如果Model-1.all的结果是
我想要哪里有多个相同数字的记录,显示价格最低的一个
我将如何在Controller中编写查询。
答案 0 :(得分:1)
假设您的模型名称是Modal,然后编写如下查询:
results = Modal.select('number, min(price) as min_price').group('number')
在视图中循环结果
<%= results.each do |result| %>
<%= result.number %>
<%= result.min_price %>
<%= end %>
答案 1 :(得分:1)
我会做一个模型范围,您可以在控制器中使用它
它可能会像这样
scope :number_with_lowest_price, -> {group(:number).having('price = min(price)')}
这样,您可以在需要使用它的模型上使用它
Model1.number_with_lowest_price
这应该呈现您期望的结果