ActiveRecord在表中具有来自同一列的2个FK
嗨,我想允许我的用户互相发送消息,我想有一个像表格结构
用户:ID | 名称
消息:至| 来自| 身体
我对rails很新,我不确定我的模型应该是什么样子,或者如何构建我从同一列有两个FK的关系。 To&From是发送消息的用户和接收者。 我正在为我的模型使用ActiveRecord。
谁能让我指出正确的方向? 我有一种感觉,我应该使用have_many,但我希望关系正好2。
你可以这样做
#user.rb Class User < ActiveRecord::Base has_many :messages end #message.rb Class Message < ActiveRecord::Base belongs_to :sender,class_name => "User",foreign_key => 'from' belongs_to :receiver,class_name => "User",foreign_key => 'to' end
注意:最好也建议使用integer foreign_keys
。如果你想更改foreign_keys
,我建议使用名称sender_id
和receiver_id
。
- 使用ActiveRecord在数据库中存储数组
- 按JSON数组中的匹配数查询和排序
- Rails ActiveRecord:当记录进入特定状态时锁定属性
- 将两个ActiveRecord :: Relation与OR组合,而不是AND,返回一个Relation而不是一个Array,以便稍后能够分页
- 如何将BigDecimal与ActiveRecord十进制字段进行比较?
- 为字段创建PostgreSQL序列(不是记录的ID)
- Rails:有很多通过关联 – 找到AND条件,而不是OR条件
- 在Rails 5.0.0.beta3,-api选项中使用accepts_nested_attributes_for时出现问题
- 列中包含#的栏目名称和已损坏的activemodel