我正在为我的应用程序创建一个管理页面,其中有一个表显示user
数据。每个user
都完成了几个小测验。在每个测验(per_quiz
, bal_quiz
等)中,该页上都有一个需要报告的代码(列为per_quiz
模型中的per_code
, bal_quiz
模型中的bal_code
等)。
每个user
has_one
bal_quiz
(和per_quiz
等等)和每个per_quiz
belongs_to
一个user
。
我试着这样称呼它:
<% @users.each do |u| %>
<tr>
<td><%= u.id %></td>
<td><%= u.first_name %></td>
<td><%= u.last_name %></td>
<td><%= u.per_quiz.per_code %></td>
<td><%= u.bal_quiz.bal_code %> (Balance)
<br><%= u.flex_quiz.flex_code %> (Flexibility)
</td>
</tr>
<% end %>
在我的controller
我有@users = User.order("last_name DESC")
。
我得到的错误是在视图的<td>
行上调用undefined method 'per_code' for nil:NilClass
。
谁能帮我弄清楚为什么这不起作用?我有类似的erb
在应用程序的其他地方,这种语法工作…
这是由于u.per_quiz
等于nil。试着解决这个问题:
<td><%= u.try(:per_quiz).try(:per_code) %></td>