0

实现一个模式,我有一个名为Lock模型,跟踪两个Students谁已锁定与对方交易。我Lock模型具有属性buyer_idseller_id这两者的usersid的从我User模型。有没有办法有属性buyerseller(用于Lock模型)直接访问其相应User用不同的名字两个独立的属性,但与同类型

例如,我想打个电话,如Lock.last.buyer.email,而不必经过user_id,如User.find(Lock.last.buyer_id).email

此外,将在语法这种差异做出更好的代码?或者我只是为了自己的可读性而对语法进行改进?无论哪种方式,我想知道,如果它可能:)

回答

1

尝试这些

belongs_to :buyer, class_name: "User", foreign_key: :buyer_id 
belongs_to :seller, class_name: "User", foreign_key: :seller_id 

还有更多的信息在the documentationbelongs_to

+0

应该迁移是在这种情况下怎么办? – roscioli

+1

'''add_column:锁:buyer_id,:integer'''如果你要使用的反向关系,你也应该添加一个索引。 '''add_index:locks,:buyer_id'''。 '''seller_id'''相同。 – Serabe

相关问题