Ruby on rails 3.2 模型关联:外键放在哪里

Ruby on rails 3.2 模型关联:外键放在哪里,ruby-on-rails-3.2,model-associations,Ruby On Rails 3.2,Model Associations,我在做一个项目,控制设备借给用户 它显示一个借出视图,该视图呈现一个表单,用户可以在其中通过选择框选择他/她想要的设备。如果设备在选择框中不可用,则用户必须注册设备,然后该设备将显示在借出视图表单的选择框中 模范协会: 贷款有很多设备 设备属于贷款 问题是: 如果设备属于借出,那么我必须将借出id放入设备中 但是,如果用户访问新设备视图并尝试注册新设备,它将 错过借书证 我怎么才能解决这个问题呢?我猜你真正想要的是,将用户与设备进行多对多映射 class User < ActiveReco

我在做一个项目,控制设备借给用户

它显示一个借出视图,该视图呈现一个表单,用户可以在其中通过选择框选择他/她想要的设备。如果设备在选择框中不可用,则用户必须注册设备,然后该设备将显示在借出视图表单的选择框中

模范协会:

贷款有很多设备

设备属于贷款

问题是: 如果设备属于借出,那么我必须将借出id放入设备中

但是,如果用户访问新设备视图并尝试注册新设备,它将 错过借书证


我怎么才能解决这个问题呢?

我猜你真正想要的是,将用户与设备进行多对多映射

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
class用户:租借
#等
结束
类设备:lendings
#等
结束
类借出

您可以编写方法,通过最新的活动借出为“当前”用户提供设备,反之亦然,并且您可以方便地记录设备项的所有借出历史。

请提供有关您的型号的更多信息,特别是“借出”项代表什么?另外:全新物品不会借给任何人,是吗?假设有人想借一台“hp笔记本电脑”,他将访问借出表并在选择框中选择hp笔记本电脑,还有更多信息,如用户名、设备品牌、设备类别(我更愿意简化问题,因为问题在上面的关联中)然后他只是登记借出。新设备不会借出给任何人。我想你的角色可能颠倒了:一件设备可能被借出很多次,但每次“借出”都只是一个事件。因此,设备id和用户id都属于借出,借出成为设备和用户之间的多对多关系。