我在公司 has_many: jobs
和工作 belongs_to: company
之间建立了工作和公司之间的关联。现在我试图访问一个只有公司有工作的页面,所以为此我在我的 Controller 中有这段代码
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'
最佳答案
如果您希望仅返回有职位的公司,而不必担心 View 中的 if/unless 逻辑,您可以:
def index
@companies = Company.joins(:jobs).uniq
end
但是,如果您想要返回有工作和没有工作的公司,您应该包括工作,这样您就不会在循环的每次迭代中进行 SQL 调用。
@companies = Company.includes(:jobs)
关于ruby-on-rails - 显示所有有工作的公司,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27990184/