我有一个名为用户的模型和关联的模型消息。因此用户可以拥有许多消息。我在消息表中有4列名为sent_at
,opened_at
,clicked_at
和email id
。
在留言表email id
中并不是唯一的。用户可能会发送多封电子邮件。因此,对于消息表中的用户,他可以多次看到相同的电子邮件。
例如:如果user_id
为7,我需要使用该关联找出最近打开的电子邮件。我需要最近打开邮件的所有用户的记录。
我用过这个:
User.find(7).messages.select(*).group(:email_id).having("max(opened_at)")
但它给了男人错误。
任何帮助都非常感谢!!在此先感谢!!
答案 0 :(得分:0)
经过大量研究后我得到了答案
a = User.find(7).messages.order("opened_at,clicked_at”).group_by(&:email_id)
这将返回哈希值。我将使用a.to_a将其转换为数组,然后我可以访问整个活动记录