Rails按最后一个子属性过滤

时间:2017-04-10 16:56:09

标签: ruby-on-rails activerecord

我对active_record查询有问题,抱歉,我是使用rails的新手。

我有一个模型订阅,它有子SubscriptionVersion,我保留所有可以更新的信息。

在API调用中,例如get请求,我合并来自订阅和当前版本(@subscription.subscription_versions.last)的数据,并为响应提供合并的哈希,但是我遇到了按值排序和过滤的问题在那个current_version。

当我尝试这样做时 @subscriptions.joins(:subscription_versions).order('subscription_versions.version')它需要所有版本并按最小值排序,即使订阅有5个版本,最新版本是5(current_version)。

所以...有人可以给我建议如何在订阅模型current_version_id中添加新字段的情况下为其生成查询吗?

1 个答案:

答案 0 :(得分:0)

如果我理解正确,您只想返回最后一个subscription_version?

根据版本的排序方式,您可以这样做(Haven未对此进行测试):

@subscriptions.joins(:subscription_versions).order('subscription_versions.version').first 

@subscriptions.joins(:subscription_versions).order('subscription_versions.version').last