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)' - 這將是那些擁有'參賽者'的人的名單。 –