Rails消息系统(获取收到的消息)

时间:2012-11-16 10:33:11

标签: mysql ruby ruby-on-rails-3 activerecord associations

我有一个消息系统供Owner和Renter进行通信。所有者拥有一辆车。 如果Renter有任何疑问,可以发送消息。

NB! 讨论会自动创建以及发布的消息。

讨论有很多消息。

讨论有以下结构:(id,title,vehicle_id,user_id) 消息具有以下结构:(id,text,discussion_id,user_id)

用户收到发送的所有邮件非常容易:

用户类中的

has_many :sent_messages, :class_name => "Message", :foreign_key => "user_id"

但现在我无法找到如何获取用户的所有已接收消息 - user.received_messages

它基本上意味着有必要查看属于用户的所有讨论(他创建了讨论,并且有不属于他的消息)或属于他的车辆的讨论(其他人创建了这个讨论和Discussion.user_id == Message.user_id)。

有人可以帮我解决这个问题吗?无法弄清楚如何进行此关联查询。

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用:finder_sql关联has_many参数解决了问题。我只是在算法中描述了原始的SQL查询,我已经在我的问题中进行了描述。