比如我有一个表叫“任务”,要标明指派人和负责人,两个都应该对应 user_id
create_table "tasks", force: true do |t|
t.integer "assigner_id"
t.integer "assignee_id"
end
现在在 models/task.rb 中这样写
class Task < ActiveRecord::Base
belongs_to :assigner, class_name: "User", foreign_key: "assigner_id"
belongs_to :assignee, class_name: "User", foreign_key: "assignee_id"
end
那在 models/user.rb 应该怎样写? 怎样才能区分当一个@user作为 assigner 里的 task,和一个@user作为 assignee 里的 task?怎么提取?@user.task肯定语义模糊了…… 现在想到的是下面的,但总觉得不对劲…觉得 foreign_key: "assigner_id“不应该写在这里,但又怎么区分?
class User < ActiveRecord::Base
has_many :tasks, foreign_key: "assigner_id"
has_many :tasks, foreign_key: "assignee_id"
end