我正在尝试创建一个显示多个一对多关联的视图。在我的应用程序中,每个“检查”都分配给一个“客户”和“代理”。我建立了自己的人际关系。代理正在返回,但客户端返回一个未定义的方法nil:nilClass为“name”。
# inspections_controller.rb
def new
@inspection = Inspection.new
@agents = Agent.all
@clients = Client.all
respond_to do |format|
format.html # new.html.erb
format.json { render json: @inspection }
end
end
# inspection.rb (model)
belongs_to :agent
belongs_to :client
# agent.rb (model)
has_many :inspections
# client.rb (model)
has_many :inspections
# index.html.erb (inspections view)
<td><%= inspection.agent.name %></td> # works
<td><%= inspection.client.name %></td> # returns undefined method `name'
我在这里不知所措,因为关联和表格设置完全相同。我能够很快回复<%= inspection.client_id %>
。
答案 0 :(得分:0)
对于具有client_id的检查记录,您可能没有相应的客户端。也许你在某个时候手动删除了一个客户端?检查您的数据,并在您的代码中添加检查,以确保您不会抛出错误,因此这样的事情可能有所帮助
<td><%= inspection.client.name unless inspection.client.blank?%></td> # returns undefined method `name'
至少通过这种方式,您可以直观地了解哪些检查没有相应的客户,让您更容易调查原因