[英]How do I specify 2 foreign keys in a model in ruby on rails?
我希望能够轻松访问current_users对话。 例如
current_user.conversations
问题是当前用户可以是发件人或收件人(sender_id或收件人_id)
class User < ActiveRecord::Base
has_many :conversations, :foreign_key => "sender_id"
这是可行的,但有时发件人是收件人,或者说某人以某人的身份发了10条消息,而收件人没有回复任何邮件,但数据库中仍然存在针对他们的对话。
如果以该用户身份登录并键入current_user.conversations,则不会出现任何情况,因为在用户模型中指定的外键是sender_id。 没有办法同时指定两者吗? 像在SQL中使用“ OR”一样?
亲切的问候
我不相信有什么方法可以完全满足您的需求,但是您可能需要考虑以下几种替代方法:
1)将其分为两个关系,send_conversations和Received_conversations,然后可以定义一个将它们组合的方法。
2)添加一个执行一些自定义SQL的新类方法:
class User < ActiveRecord::Base
def conversations
Conversation.where("sender_id = :id OR receiver_id = :id", id: self.id)
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.