【发布时间】:2015-05-06 10:38:31
【问题描述】:
在我的应用程序中,我有一个 User 模型和一个 Job 模型。用户可以发布许多职位,其他用户可以通过发布提案来申请这些职位。然后,职位发布者可以从已申请的用户列表中选择一个用户,稍后该用户将被分配从事此工作。
这意味着 Job 模型应该为 User 提供两种外键,可能类似于 poster_id 和 worker_id。
目前我的模型如下所示:
class Job < ActiveRecord::Base
belongs_to :user
has_many :proposals, dependent: :destroy
end
class User < ActiveRecord::Base
has_many :jobs, dependent: :destroy
has_many :proposals, through: :jobs
end
class Proposal < ActiveRecord::Base
belongs_to :job
belongs_to :user
end
我的问题是,为了按照我描述的方式工作,这些模型之间的正确关联是什么?
例如,我需要访问某个用户发布的职位,以及该用户订阅的职位(worker_id)。这些是不同的集合,但属于同一模型 Job...
类似:
@user.posted_jobs.all
@user.current_jobs.all
这些将为同一个@user 返回不同的作业。
非常感谢帮助。
【问题讨论】:
-
一个工作可以有多个工人用户吗?
标签: ruby-on-rails ruby rails-activerecord models model-associations