22 lines
509 B
Ruby
22 lines
509 B
Ruby
class BoardMembership < ApplicationRecord
|
|
belongs_to :board
|
|
belongs_to :participant
|
|
|
|
# 参加中かどうか(退出していない)
|
|
def active?
|
|
left_at.nil?
|
|
end
|
|
|
|
# 退出処理
|
|
def leave!
|
|
update!(left_at: Time.current)
|
|
end
|
|
|
|
# 既読位置を更新
|
|
def mark_read!(post_id)
|
|
# 既存の既読位置より新しい場合のみ更新(巻き戻り防止)
|
|
# ただし今回は単純に最新をセットする形で良い
|
|
update!(last_read_post_id: post_id)
|
|
end
|
|
end
|