我有一个带有两个模型 Campus 和 Stat 的 Rails 4 应用程序。Campus has_many stats 和 Stat belongs_to Campus。
我遇到的问题是我可以在我的显示操作中从我的 Campus 表中获取数据,但不能在我的索引操作中。这是来自控制器的相关代码。
def index
@stats = Stat.all
end
def show
end
这是我的 show.html.erb:
<p id="notice"><%= notice %></p>
<p>
<strong>Attendance:</strong>
<%= @stat.attendance %>
</p>
<p>
<strong>Salvations:</strong>
<%= @stat.salvations %>
</p>
<p>
<strong>Visitors:</strong>
<%= @stat.visitors %>
</p>
<p>
<strong>Offering:</strong>
<%= @stat.offering %>
</p>
<p>
<strong>Campus:</strong>
<%= @stat.campus.name %>
</p>
<p>
<strong>Date:</strong>
<%= @stat.date %>
</p>
<%= link_to 'Edit', edit_stat_path(@stat) %> |
<%= link_to 'Back', stats_path %>
它的输出如下:
出席人数:23
救恩:0
参观者:3
提供:5000.0
校园:雷夫尔斯托克
日期:2013-07-05
编辑 | 后退
这是我的 index.html.erb 的相关部分:
<% @stats.each do |stat| %>
<tr>
<td><%= stat.attendance %></td>
<td><%= stat.salvations %></td>
<td><%= stat.visitors %></td>
<td><%= stat.offering %></td>
<td><%= stat.date %></td>
<td><%= stat.time %></td>
<td><%= stat.campus.name %></td>
<td><%= link_to 'Show', stat %></td>
<td><%= link_to 'Edit', edit_stat_path(stat) %></td>
<td><%= link_to 'Destroy', stat, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
输出为我提供了一个未定义的方法“名称”,用于 nil:NilClass 用于 stat.campus.name
我无法弄清楚为什么会有差异。我究竟做错了什么?