我知道如果你想设置外键,用户使用user_id的活动记录需要,但是对于需要的项目,我们必须使用三个不同的字段来存储不同的用户(负责,执行者,验证用户)
所以现在看起来像
Task
-----------
name | date | until | initiation | validation | execution
我认为它看起来应该是
has_one :user,class => User,:as=> :initiation
或类似的,但仍无法找到正确的方法
答案 0 :(得分:2)
如果我理解正确,你有任务模型,它有三种类型的用户处理它。你想要全部引用它们,对吧?
如果是这样,那么首先通过迁移将initiate_id,validation_id和execution_id字段放入任务表中。然后在任务模型中尝试:
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
希望我理解你。
答案 1 :(得分:1)
我并不完全确定您需要了解,但我认为您要么正在寻找Polymorphic Associations或Single Table Inheritance (STI)。
无论哪种方式,都有一个Railscast-episode on this topic(仅限专业版) - 你应该看看它是否是你想要的。