ActiveRecordで自己結合する
データ分析の集計上、自己結合しなきゃいけなかったので調べてみた。
以下の感じで、自己結合できます。
message.rb
class Message < ActiveRecord::Base belongs_to :item has_many :own_join, -> class_name: Message, primary_key: 'item_id', foreign_key: 'item_id' end
item.rb
class Item < ActiveRecord::Base has_many :message end
message = Message.joins(:own_join).all
でクロス結合されて、
message.frist.own_join
でⅠレコード目にMessageの全レコードがぶら下がってる感じになります。 分析はこれを絞り込んで使いました。
参考にさせていただいたページの断片