【发布时间】:2014-12-11 05:15:37
【问题描述】:
我正在尝试按 created_at 排序,然后根据外键获取 DISTINCT 集。
另一部分是使用 ActiveModelSerializer。具体来说,我希望能够声明:
has_many :somethings
在序列化程序中。让我进一步解释......
我可以使用这个自定义 sql 获得我需要的结果:
def latest_product_levels
sql = "SELECT DISTINCT ON (product_id) client_product_levels.product_id,
client_product_levels.* FROM client_product_levels WHERE client_product_levels.client_id = #{id} ORDER BY product_id,
client_product_levels.created_at DESC";
results = ActiveRecord::Base.connection.execute(sql)
end
是否有任何可能的方法来获得此结果,但作为 has_many 关系的一个条件,以便我可以在 AMS 中使用它?
在伪代码中:@client.products_levels
会做类似的事情:@client.order(created_at: :desc).select(:product_id).distinct
这当然会因为我无法理解的原因而失败。
任何帮助都会很棒。
谢谢。
【问题讨论】:
标签: ruby-on-rails postgresql active-model-serializers