显示所有有工作的公司
show all companies that have a job
我在工作和公司之间有关联,其中公司 has_many: jobs
和工作 belongs_to: company
。现在我试图访问一个只有公司有工作的页面,所以为此我在我的控制器中有这个代码
def recruiting
@companies = Company.all
end
这是我的招聘页面
<% @companies.each do |company| %>
<% unless company.job.nil? %>
<%= link_to company.name, company_path(company), title: "#{company.name}" %>
<% end %>
<% end %>
这不起作用并给我一个错误 undefined method job'
请将 <% unless company.job.nil? %>
替换为 <% if company.jobs.any? %>
当你有 has_one 关系时,形式是单数(工作)。在has_many中,有多个职位,所以形式是复数。
所以
company.jobs.nil?
如果您只想 return 有职位的公司,而不必担心视图中的if/unless 逻辑,您可以这样做:
def index
@companies = Company.joins(:jobs).uniq
end
但是,如果您想 return 有工作和没有工作的公司,您应该包括工作,这样您就不会在循环的每次迭代中进行 SQL 调用。
@companies = Company.includes(:jobs)
我在工作和公司之间有关联,其中公司 has_many: jobs
和工作 belongs_to: company
。现在我试图访问一个只有公司有工作的页面,所以为此我在我的控制器中有这个代码
def recruiting
@companies = Company.all
end
这是我的招聘页面
<% @companies.each do |company| %>
<% unless company.job.nil? %>
<%= link_to company.name, company_path(company), title: "#{company.name}" %>
<% end %>
<% end %>
这不起作用并给我一个错误 undefined method job'
请将 <% unless company.job.nil? %>
替换为 <% if company.jobs.any? %>
当你有 has_one 关系时,形式是单数(工作)。在has_many中,有多个职位,所以形式是复数。
所以
company.jobs.nil?
如果您只想 return 有职位的公司,而不必担心视图中的if/unless 逻辑,您可以这样做:
def index
@companies = Company.joins(:jobs).uniq
end
但是,如果您想 return 有工作和没有工作的公司,您应该包括工作,这样您就不会在循环的每次迭代中进行 SQL 调用。
@companies = Company.includes(:jobs)