首页 > 解决方案 > 当活动记录对象不为零时引用视图表中的字段时的零值

问题描述

我在 has_many :through 关系中的 rails 视图中遇到了一个奇怪的错误。

地块通过 PlotYears 有许多植物

该关联在 Rails 控制台中运行良好。甚至在索引视图的顶部。我在顶部放了一个小声明,只是为了验证我可以访问 plot.plants 中的字段。奇怪的是,当我在表中执行 plot.plants.first 时,我在表中得到了一个活动记录对象。但是当我尝试引用该对象中的任何字段时,我得到一个 nil 类。谢谢你的时间。

显示 /home..../index.html.erb 其中第 20 行提出:

nil:NilClass 的未定义方法“名称”

提取的源代码(大约第 20 行):

<% @plots.each do |plot| %>
  <tr>
    <%= @p = plot.plants.first.name %>

索引.html

<h1>Plots</h1>
<p> <%= Plot.first.plants.first.name %> </p> 

<table>
  <thead>
    <tr>
      <th>Sector</th>
      <th>Lat</th>
      <th>Long</th>
      <th>Crop</th>
      <th colspan="4"></th>
    </tr>
  </thead>

  <tbody>
    <% @plots.each do |plot| %>
      <tr>
        <td><%= plot.sector %></td>
        <td><%= plot.lat %></td>
        <td><%= plot.long %></td>
        <td><%= plot.plants.first.name %></td>
        <td><%= link_to 'Show', plot %></td>
        <td><%= link_to 'Edit', edit_plot_path(plot) %></td>
        <td><%= link_to 'Destroy', plot, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

标签: ruby-on-rails

解决方案


推荐阅读