Rails模型关联 - 用户创建作业,但用户应接受作业并分配给他们

时间:2011-05-06 18:04:38

标签: ruby-on-rails activerecord model associations one-to-one

现在我有一个模型users可以登录并创建jobs。作业belongs_to :users和用户has_many :jobs。到现在为止还挺好。但现在我想建立一对一的关系,每个JOB可以分配一个用户。关联用户模型和作业模型的最佳方法是什么?

示例:

  1. 用户可以创建作业,并为其分配不同的用户。
  2. 用户可以创建工作并将其分配给自己。
  3. 作业只能分配一个用户,但不需要分配用户。
  4. 乔布斯将始终拥有一个创建者(user_id)。
  5. 由于我已经设置了作业belongs_to :users,因此作业已经有user_id列,那么如何重新使用它来显示接受作业/分配到作业?< / p>

    谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用不同的外键在JobUser类之间设置多个关联:

class Job < ActiveRecord::Base
  belongs_to :user
  belongs_to :assigned_user, :class_name => "User", :foreign_key => "assigned_user_id"
end

class User < ActiveRecord::Base
  has_many :jobs
  has_many :assigned_jobs, :class_name => "Job", :foreign_key => "assigned_user_id"
end