我有一个作为数组返回的@bunch
模型集合
每个模型都具有属性 - commentable_id
和commentable_type
(多态关联)
我想按评论分组模型,但如果这样做,
@bunch.group_by(&:commentable)
它还从数据库中获取了可评论的内容,这是不必要的。
我可以执行@bunch.group_by(&:commentable_id)
,但这会导致一些混淆,因为可能有多种类型的可评论模型。
有没有一种方法可以按commentable_id
和commentable_type
进行group_by
?
[{id: 'maisy', type: 'cat'}].group_by { |x| x.values_at(*%i[id type]) }
。在大多数情况下,这些字面值将成为良好的语义变量,因此更容易阅读。 - J.M. Janzen