我正在尝试创建一个显示多个一对多关联的视图。在我的应用程序中,每次"检查"都被分配给单个"客户"one_answers"代理"。我已经建立了我的人际关系。代理返回,因为它应该是,然而客户端返回一个未定义的方法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 %>
,
对于client_id的检查记录,可能没有对应的客户端。也许您在某个时候手动删除了客户端?检查你的数据,并在你的代码中添加检查,以确保你不会抛出错误,所以像这样的东西可能会有所帮助
<td><%= inspection.client.name unless inspection.client.blank?%></td> # returns undefined method `name'
至少这样,您将能够直观地了解哪些检查没有相应的客户端,从而使您更容易调查为什么这可能是