Ruby on rails 将多个列映射到同一个表
想象一个简单的I-O-U应用程序,其中有一个Ruby on rails 将多个列映射到同一个表,ruby-on-rails,ruby,orm,Ruby On Rails,Ruby,Orm,想象一个简单的I-O-U应用程序,其中有一个用户模型和一个事务模型 User表包含以下列: 身份证 名字 事务表包含以下列: 贷方id(用户id的外键) 借款人id(用户id的外键) 日期 用户只能向user表中存在的其他用户借出或借用 例如: User: id | name ------------- 1 | name A 2 | name B 3 | name C Transaction: lender_id | borrower_id | date ----
用户
模型和一个事务
模型
User
表包含以下列:
- 身份证
- 名字
事务
表包含以下列:
- 贷方id(用户id的外键)
- 借款人id(用户id的外键)
- 日期
user
表中存在的其他用户借出或借用
例如:
User:
id | name
-------------
1 | name A
2 | name B
3 | name C
Transaction:
lender_id | borrower_id | date
----------------------------------
1 | 2 | date1
1 | 3 | date2
3 | 2 | date3
如何在模型类中实现关联?关于事务:
belongs_to :lender, :class_name => "User"
belongs_to :borrower, :class_name => "User"
关于用户:
has_many :loans, :class_name => "Transaction", :foreign_key => "lender_id"
has_many :debts, :class_name => "Transaction", :foreign_key => "borrower_id"
这将为您提供:
u = User.first
u.loans # [transaction, transaction, ...]
u.debts # [transaction, transaction, ...]
及
希望这有帮助 您是否需要?您为交易存储了哪些其他属性,以及您计划如何在应用程序中使用这些属性?
t = Transaction.first
t.lender # User
t.borrower # User