0
我的注册和参赛者模型之间有一个相当简单的关联。ActionView :: Template :: Error(nil:NilClass的undefined方法`名字'):
class Contestant < ActiveRecord::Base
has_many :registrations
end
class Registration < ActiveRecord::Base
belongs_to :contestant
end
我试图从我的注册索引页面引用参赛者的姓名。
<tbody>
<% @registrations.each do |registration| %>
<tr>
<td><%= registration.contestant.FirstName%></td>
</tr>
<% end %>
</tbody>
访问页面产
ActionView::Template::Error (undefined method `FirstName' for nil:NilClass):
我运行的Ruby-2.3.3-P222用ActiveRecord 4.2.6(Rails的4.2.6)。我也试过ruby-2.2.4-p230并得到相同的结果。扭曲是我有我的用户和角色之间的类似关联。我可以打电话<%= user.role.name %>
没有问题。我已经在两者之间反映了我的逻辑,并且对于原因感到不知所措。谢谢大家的洞察力。
啊,你说得对! “registration.contestant.try(:FirstName)”显示空白值。由于我引用了正确的参赛者ID,这是令人困惑的。另一个解决的谜团,但这使我朝着正确的方向发展。谢谢! – EDPittore
@EDPittore没有probs。只要检查'ids = @ registrations.joins(:参赛者).pluck('registrations.id')''Registration.where(id:ids)' - 这将是那些拥有'参赛者'的人的名单。 –