【发布时间】:2014-08-21 20:41:15
【问题描述】:
我是 Rails(和编程)的新手,在学习了一些教程后,我正在设计一个消息应用程序来测试我的技能。
我正在建模的情况是用户可以向 2 个以上的其他用户发送消息。这是我想出的
- 一个对话有许多参与者(用户)和许多消息 (消息)。
- 一个用户有很多对话和很多消息。
- 消息属于用户(发件人 + 收件人)并属于对话。
那么 ActiveRecord 模型是:
class User < ActiveRecord::Base
has_many :messages, :through :conversation
has_many :conversations # or is belongs_to :conversation
end
class Message < ActiveRecord::Base
belongs_to :user
belongs_to :conversation
end
class Conversation < ActiveRecord::Base
has_many :messages
belongs_to :user # or is it has_many :users
end
或者我必须添加第四个界面收件箱
class Inbox < ActiveRecord::Base
belongs_to :user
has_many :conversations
end
我会将用户和对话模型更改为
class User < ActiveRecord::Base
has_one :inbox
has_many :conversations, :through :inbox
has_many :messages, :through :conversation
end
class Conversation < ActiveRecord::Base
belongs_to :inbox
has_many :messages
belongs_to :users
end
第二个选项看起来多余。 所以,是的,我对对话和用户之间的关系/关联很模糊。非常感谢所有能启发我的意见。
【问题讨论】:
标签: ruby-on-rails ruby message rails-activerecord