【发布时间】:2009-07-21 02:44:25
【问题描述】:
假设您有两个可以以不同方式关联的模型:
用户创建了许多对话。 (一对多) 一个用户有许多他们参与的对话。 (多对多)
我的第一个想法是将创建对话的用户的 id 存储在对话表中,并将参与对话的用户关联到联接表中。
class User < ActiveRecord::Base
has_many :conversations
has_and_belongs_to_many :conversations
end
class Conversation < ActiveRecord::Base
belongs_to :user
has_and_belongs_to_many :users
end
这似乎是在自找麻烦。
这样做的正确方法是什么? 基本上,我希望能够将 user.conversations 用于参与的人,而 user.started_conversations 用于由用户启动的人。
谢谢。
【问题讨论】: