我有点像菜鸟,想要与你们确认我是否在正确的道路上,为工作招聘申请建模。
有用户
每个用户填写详细信息,并录制1个视频。
有工作。
每份工作都有1或2个关于工作的具体问题。 用户通过填写1或2个特定问题来申请工作。
基于此,
我们将拥有用户模型。
User模型将具有属性name,email,degree,pref_city等,video_id
用户has_many jobs
然后,就是作业模型。 job belongs_to users
我对这个模型将如何发挥作用感到困惑
每个作业都有job_title,job_desc,salary等,以及custom_question1,custom_question2。
当admin创建作业时,他们将为1和2编写自定义问题。
然后,当用户申请该职位时,他们会回答这些问题。 但是,我会在哪里记录自定义问题的答案?
我是在正确的轨道上吗?
答案 0 :(得分:2)
我个人会打破job
本身的问题和答案,以获得更多的魔法,因为我们确实喜欢我们的元素。
所以看起来更像是这样:
User
has_many :jobs
Job
belongs_to :user
has_many :questions
has_many :applications
Application
belongs_to :user
belongs_to :job
Question
has_many :answers
belongs_to :job
Answer
belongs_to :question
belongs_to :user
通过这种方式,您可以通过说
来获取给定作业的当前答案列表@job.questions.first.answers
答案 1 :(得分:1)
我认为你走在正确的轨道上。下面的代码集应该会给你一些想法。听起来像一个很棒的项目。玩得开心!
# user.rb
class User < ActiveRecord::Base
has_many :jobs # jobs this user posted
has_many :job_applications
has_many :user_answers
# job.rb
class Job < ActiveRecord::Base
has_many :questions
has_many :job_applications
# question.rb
class Question < ActiveRecord::Base
has_many user_answers
belongs_to :job
# job_application.rb
class JobApplication < ActiveRecord::Base
belongs_to :user
belongs_to :job
# user_answer.rb
class UserAnswer < ActiveRecord::Base
belongs_to :user
belongs_to :question
# has a column "answer text..."
答案 2 :(得分:1)
答案 3 :(得分:1)
这是作业和用户之间的多对一关系。用户可以申请许多工作,工作可以有很多应用;对?您可以使用以下结构获得更强大的模型:
User
has_many :jobs, through: :applications
Job
has_many :users, through :applications
has_many :questions
Application
belongs_to :user
belongs_to :job
has_many :answers
Question
belongs_to :job
has_one :answer
Answer
belongs_to :application
belongs_to :question
我真的认为不是将答案链接到用户,而是应该将它们链接到应用程序。