我在工作和公司之间有一对多的关联,我想在创建工作时选择公司名称并输入工作信息,这样在保存工作并返回公司页面时,我会看到工作头衔,但是这个代码我什么都没得到
这是我公司的模特
class Company < ActiveRecord::Base
has_many :jobs
end
这是工作模式
class Job < ActiveRecord::Base
belongs_to :company
end
这是工作表单视图
<div class="form-group">
<%= f.label :company %><br />
<%= f.collection_select :company_id, Company.all, :id, :name, :prompt => "Choisir votre société" %>
</div>
<div class="form-group">
<%= f.label :job_title, "Intitulé du poste", class: "jobs-newtitles" %><br>
<%= f.text_field :job_title, class: "form-control form-newjob" %>
</div>
这是我的公司展示视图
<% if @company.jobs.blank? %>
<h3> this company have no job</h3>
<% else %>
<div class = "job-description-profile-section" >
<%= @company.jobs.job_title %>
</div>
<% end %>
答案 0 :(得分:1)
如果我正确理解了您的问题,您的作业会正确保存在数据库中,但在访问公司的show view中的job_title时会出现错误。
@company.jobs
将返回与特定公司关联的一系列作业。
而不是<%= @company.jobs.job_title %>
(肯定会出错)
在公司展示视图中,您需要的是
<% @company.jobs.each do |job| %>
<%= job.job_title %>
<% end %>
修改强>
即使在更新代码后,如果在保存作业后在屏幕上看到this company have no job
。然后,这意味着没有为特定作业存储company_id
属性。
确保您允许在控制器中保存company_id
。
对于前。
def job_params
params.require(:job).permit(:job_title, :company_id)
end