【问题标题】:Active record foreign key custom naming活动记录外键自定义命名
【发布时间】:2013-09-17 05:02:04
【问题描述】:

我知道如果你想设置外键,用户的活动记录需要使用 user_id,但是对于需要的项目,我们必须使用三个不同的字段来存储不同的用户(负责人、执行者、验证用户)

所以现在看起来像

Task
-----------
name | date | until | initiation | validation | execution  

我觉得应该是这样的

has_one :user,class => User,:as=> :initiation

或类似的,但仍然找不到正确的方法

【问题讨论】:

    标签: ruby-on-rails activerecord


    【解决方案1】:

    如果我理解正确,你有任务模型,它有三种类型的用户处理它。您想全部引用它们,对吗?

    如果是这样,那么首先通过迁移将initialization_id、validation_id 和execution_id 字段放入您的tasks 表中。然后在您的任务模型中尝试这个:

    has_one :initiation, :class => "User", :foreign_key => :initiation_id
    has_one :validation, :class => "User", :foreign_key => :validation_id
    has_one :execution, :class => "User", :foreign_key => :execution_id
    

    希望我理解正确。

    【讨论】:

      【解决方案2】:

      我不完全确定了解您的需求,但我认为您正在寻找 Polymorphic AssociationsSingle Table Inheritance (STI)

      无论哪种方式,都有一个Railscast-episode on this topic(仅限专业版)- 你应该看看它是否是你要找的。​​p>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-29
        • 1970-01-01
        • 1970-01-01
        • 2015-08-19
        相关资源
        最近更新 更多