Rails - one model with two associations

坚强是说给别人听的谎言 提交于 2019-12-06 15:49:17

I'd do something like this:

# Untested code, please check yourself!
class Member < ActiveRecord::Base
  has_many :outgoing_messages, :class_name  => "Message", 
                               :foreign_key => :message_from_id
  has_many :incoming_messages, :class_name  => "Message",
                               :foreign_key => :message_to_id
end


class Message < ActiveRecord::Base
  belongs_to :sender, :class_name  => "Member", 
                      :foreign_key => :message_from_id
  belongs_to :receiver, :class_name  => "Member", 
                        :foreign_key => :message_to_id
end

More to read about associations here: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many

EDIT: In your views:

- @member.outgoing_messages.each do |message|
    ={message.receiver.name}
    ={message.sender.name}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!