1
我有一個graphs
表,其中有name
和version
字段。每次插入記錄時,如果數據庫中不存在名稱,則版本爲0
,否則爲max(version) + 1
。我想獲取每個唯一名稱的最高版本記錄列表。下面的代碼執行此操作:如何找到組中的特定字段的最大值的記錄
def self.latest_versions
Graph.group(:name).maximum(:version).map{ |k,v| find_by name: k, version: v}
end
,但我不知道是否有一個更快的方式做到這一點使用範圍,只是鏈活動記錄的關係?
我不認爲這會起作用,它只是返回所有圖形上具有最大版本號的記錄。有不同類型的圖形,通過:名稱字段進行區分。每種類型的圖都有自己的版本控制,所以名爲'line_plot'的最新圖可能具有版本5,而名爲'bar_plot'的最近圖可能具有版本7.您的代碼只會返回版本7 'bar_plot',但我需要返回版本7或'bar_plot'和版本5'line_plot' – Obromios
是的,現在明白了,對於誤解抱歉。 –
@Obromios我已經更新了'答案',你可以檢查它。 –