我正在开发一个控制用户设备借贷的项目。
它显示了一个借阅视图,用于呈现一个表单,用户可以通过选择框选择他/她想要的设备。如果设备在选择框中不可用,则用户必须注册设备然后它将出现在在借出视图的表格中选择框。
模特协会:
贷款has_many设备
设备belongs_to Lending
怀疑是: 如果设备属于贷款,那么我必须将lending_id放在设备中。
但是如果用户访问新设备视图并尝试注册新设备,它将会 错过了lending_id。
我该如何解决这个问题?
答案 0 :(得分:1)
我的猜测是你真正想要的是将用户映射到设备的多对多映射。
class User < ActiveRecord::Base
has_many :lendings
has_many :equipments, :through => :lendings
# etc
end
class Equipment < ActiveRecord::Base
has_many :lendings
has_many :users, :through => :lendings
# etc
end
class Lending < ActiveRecord::Base
belongs_to :user
belongs_to :equipment
# etc
end
您可以编写方法,通过最新的有效贷款为设备提供“当前”用户,反之亦然,此外您还拥有设备项目所有贷款的便捷历史记录。