我有公司课程:
class Company < ActiveRecord::Base
validates :name, :presence => true
has_many :employees
end
以及员工只能与一家公司关联的员工类:
class Employee < ActiveRecord::Base
validates :lastName, :presence => true
belongs_to :company
validates :company, :presence => true
end
当我列出员工时,
<% @employees.each do |employee| %>
<tr>
<td><%= employee.firstName %></td> <- works
<td><%= employee.lastName %></td> <- works
<td><%= employee.company.name %></td> <- Get an 'undefined method `name' for nil:NilClass' error
</tr>
<% end %>
我认为员工公司急需加载,因此我可以直接在对象中访问关联,或者我的语法错误了?
任何帮助将不胜感激
答案 0 :(得分:2)
我可以想到两种情况:
company_id = NULL
。
company_id = ID
但是具有此ID的公司不再存在。
在任何情况下,在控制台中检查违规对象都是微不足道的:Employee.reject(&:company)
。
答案 1 :(得分:0)
由于员工属于公司,您应该从公司本身加载员工。类似的东西:
class EmployeeController < ApplicationController
def index
@employees = @company.employees
...
end
...
end