这个想法是,当用户要求将图像发送到邮件时,我需要保存他的电子邮件。
电子邮件不是唯一的
因此,用户可以向其邮箱发送10张图像。
我需要显示什么图像以及用户发送该图像的电子邮件。 也就是说,我需要获取发送的邮件总数。 以及已经发送给特定电子邮件的信件数。
我在视图中有一张桌子。
image email total
image_id blah@mail.com (3)
image_id blah2@mail.ru (2)
我使用此代码
photo_booth.send_images.includes(:image).select('distinct on (email) *')
但是我收到了很多独特的电子邮件。
如何通过电子邮件进行分组并同时从表中获取所有列?
t.string "email"
t.bigint "image_id", null: false
t.bigint "photo_booth_id", null: false
答案 0 :(得分:0)
对于初学者来说,由于您没有提及模型名称,因此我假设您的模型名称为EmailImage,好吗?反正...
您可以尝试group_by
方法。像这样:
photo_booth.send_images.group_by {|res| res.email}
将给您类似的结果
{"blah@mail.com" => [#<EmailImage id: 1, email: "blah@mail.com", image_id: 1>, #<EmailImage id: 2, email: "blah@mail.com", image_id: 2>]}
,依此类推。请注意,EmailImage对象的数组大小是重复发送电子邮件的总数,因此您可以在视图中使用该图像以及image_id(直接从数组本身中的对象获取)以及所需的其他任何内容。希望能帮助到你! =)