Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将多个列映射到同一个表_Ruby On Rails_Ruby_Orm - Fatal编程技术网

Ruby on rails 将多个列映射到同一个表

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 ----

想象一个简单的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
----------------------------------
     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