- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我在文档中找不到这个,搜索它只显示在模型中添加唯一性的结果。
如何为 .where
调用添加唯一性。我想让下面的命令不使用相同的 category_item_id
获取 CategoryItemValues
。
last_updated_items = CategoryItemValue.where(guide_id: @guide.id).order(updated_at: :desc).limit(5)
因此该命令会获取 5 个最近更新的 CategoryItemValues
,但不会获取其中 5 个具有相同 category_item_id
的值。如果 category_item_id
与另一个最近更新的相同,它会跳过它并将下一个最近更新添加到返回的 5 个结果中。
更新
使用 select
方法并使用 distinct
出于某种原因仍然会给出重复的 category_item_id
CategoryItemValue.select(:category_item_id).distinct.where(guide_id: @guide.id).order(updated_at: :desc).limit(5).pluck(:category_item_id, :updated_at)
[[6,2016 年 5 月 11 日星期三 10:24:39 UTC +00:00],[3,2016 年 5 月 11 日星期三 10:21:20 UTC +00:00],[3, 2016 年 5 月 11 日星期三 10:20:43 UTC +00:00],[6,2016 年 5 月 11 日星期三 09:14:14 UTC +00:00],[5,2016 年 5 月 11 日星期三 09:14:04 UTC +00:00]]
注意第二个和第三个数组值的开头都是 3。 (加上我不确定日期时间后的逗号是否会影响从数组中提取这些值)
最佳答案
尝试这样的事情:
CategoryItemValue.select(:category_item_id, "MIN(updated_at) as updated_at").distinct.where(guide_id: @guide_id).group(:category_item_id).order(updated_at: :desc).limit(5)
这两种方法都对由 category_item_id 设置的结果进行分组,并且应该为每个类别项目返回一个记录,其中包含该类别项目的 updated_at
的最旧 (MIN) 值。获取最新的更新记录,使用 MAX 而不是 MIN。
关于ruby-on-rails - 如何在 rails 中的 .where 调用中添加唯一性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37175307/
我是一名优秀的程序员,十分优秀!