0
私は登録と競技者モデルとの間にかなり単純な関連性があります。ActionView :: Template :: Error(Nil:NilClassのための未定義メソッド `FirstName '):
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):
は、私はActiveRecordの4.2.6(Railsの4.2.6)とルビー-2.3.3-P222を実行していますよ。私もruby-2.2.4-p230を試してみて、同じ結果を出します。私のユーザと役割は同じように関連しています。電話番号<%= user.role.name %>
は問題なく使用できます。私は2人の間で私の論理を鏡映していますし、なぜか喪失しています。その洞察力に感謝します。
あなたは正しいああ! "registration.contestant.try(:FirstName)"が空白の値を示しています。私は正しい競技者IDを参照しているので混乱しています。解決するもう一つの謎ですが、これは正しい方向に私を送ります。ありがとうございました! – EDPittore
@EDPittore probsはありません。 'ids = @ registrations.joins(:contestant).pluck( 'registrations.id')' 'Registration.where(id:ids)' - これは 'contestant'を持つ人のリストになります。 –