かまぼこ日記

日々の記録

足あと機能を実装するとき

先日、足あと機能を実装した時に書いた多対多のリレーションについてメモ。

テーブルはこんな感じにした。

Memberテーブル

id name
1 yaginuuu
2 taro


Footprintテーブル

id member_id visitor_id
1 1 2


これでtaroさんがyaginuuuさんに足あとをつけたと表現する。
多対多の関連!

で、書いたコードはこれ。
member.rb

has_many :footprints, :class_name => "Footprint", :foreign_key => :member_id
has_many :visitors, :through => :footprints
has_many :footprints, :class_name => "Footprint", :foreign_key => :visitor_id
has_many :members, :through => :footprints

footprint.rb

belongs_to :visitor, :class_name => "Member", :foreign_key => :visitor_id
belongs_to :member, :class_name => "Member", :foreign_key => :member_id


Instagram

参照が逆でつまったのでメモしますた。