【问题标题】:Implementing a model with two separate attributes with different names but with same type实现具有两个不同名称但具有相同类型的独立属性的模型
【发布时间】:2014-01-28 01:14:17
【问题描述】:

我有一个名为Lock 的模型,它跟踪两个已达成交易的Students。我的Lock 模型具有属性buyer_idseller_id,它们都是idusers 来自我的User 模型。有没有办法让属性buyerseller(对于Lock 模型)直接访问它们相应的User

例如,我想拨打Lock.last.buyer.email 之类的电话,而不必通过user_id 之类的User.find(Lock.last.buyer_id).email

另外,这种语法上的差异会产生更好的代码吗?还是我只是为了自己的可读性而在语法上进行了改进?不管怎样,我想知道它是否可能:)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 model-associations rails-models


    【解决方案1】:

    试试这些

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

    the documentation 中有更多关于belongs_to 的信息。

    【讨论】:

    • 这种情况下应该怎么迁移?
    • add_column :locks, :buyer_id, :integer 如果你要使用反向关系,你也应该添加一个索引。 add_index :locks, :buyer_idseller_id 也一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多