我有创建职务列表以及应用于职务列表的用户。
当用户创建职务列表时,作业表如下所示:
=> #<Job id: 9, created_at: "2021-04-30 11:30:41", updated_at: "2021-04-30 11:30:41", job_title: "Healer", job_description: "Magical Healer Needed", job_price: 20000, user_id: 3, photo: nil, job_long_description: "Help me get better cause I dont feel good", job_location: "London">当用户申请职务时,Jobapps 如下所示:
=> #<Jobapp id: 7, created_at: "2021-04-30 14:13:38", updated_at: "2021-04-30 14:13:38", user_id: 6, job_id: 9, message: "I have magical space drugs that will blow your min...">注意上面匹配的job_ids ..。
THE PROBLEM我希望招聘海报能看到申请招聘海报的人的名单。
如何显示JOBAPP表中与职务海报相关的所有job_ids?这需要一个“通过”的关联/连接表吗?
有关其他信息,请参阅我的数据库数据库模式。
谢谢您的时间,如果您需要我发布更多的信息(模型等),请不要犹豫。
发布于 2021-05-05 12:44:05
一位导师帮助我解决了问题,并在上面的答案中提出了与SVRourke类似的路线。
我们把这个添加到我的模型中(这让我很惊讶)
def applicants
@applicants = []
self.jobs.each do |job|
job.jobapps.each do |jobapp|
hash_jobapp = {job: jobapp.job, user: jobapp.user, jobapp: jobapp}
@applicants << hash_jobapp
end
end
@applicants
end然后,我们将逻辑从模型链接到相应的控制器。
def applicant
@applicants = current_user.applicants
end然后,在视图中,可以使用:user等从适当的表中调用每一列。
<div class="container-job-index">
<h1>All Applicants to my jobs</h1>
<p>All applicants to your jobs should appear here</p>
<% @applicants.each do |jobapp| %>
<div class="job-card">
<div class="job-info">
<h3 class="job-card-title"><%= jobapp[:user].fname %></h3>
<p class="job-card-description"><%= jobapp[:job].job_title %></p>
<p class="">Message: <%= jobapp[:jobapp].message %></p>
</div>
</div>
<% end %>
</div>发布于 2021-04-30 21:38:32
问题是,我想让招贴画看到一张申请过招聘海报的人的名单。
因此,为了澄清,您本质上希望一个用户跨多个不同作业的所有职务公告的所有应用程序的数组?
如果是这样的话,我会通过求职应用程序做一个类似于工作的has_many申请者:用户
通过这种方式,您可以调用instanceOfAJob.applicants并获得一个用户数组,然后创建一个用户方法,该方法将职务映射累加到申请者中。
如果您只想要一组特定职务的申请者用户,我只需在作业类上创建一个使用map和where子句的方法,如
job.jobapps.map {x{ja= ja.user }
如果我误解了你的问题,我很抱歉!您可能需要重新阅读ActiveRecord关联basics.html。
https://stackoverflow.com/questions/67335814
复制相似问题