Rails 查询选择具有不同列的最后一条记录

Mir*_*iam 5 mysql sql activerecord ruby-on-rails

我需要进行查询,在其中检索不同列的“最后”记录。

我有一个模型,语言,它有 3 列:

Locale -> es | en | de
Version ->  1 | 2 | 3
Data -> aaa | bbb | ccc
Run Code Online (Sandbox Code Playgroud)

可以按区域设置重复记录,而不是按版本。例如:

es | 1 | aaa
es | 2 | aab
es | 3 | aba
en | 1 | bbb
en | 2 | bab
Run Code Online (Sandbox Code Playgroud)

在那个例子中,我需要检索这个结果:

es | 3 | aba
en | 2 | bab 
Run Code Online (Sandbox Code Playgroud)

将有一种语言的最后 2 个版本。我现在正在做这个查询:

Language.all.order('created_at desc').group(:locale)
Run Code Online (Sandbox Code Playgroud)

但我得到:

es | 2 | aba
en | 1 | bab
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?提前致谢!