本当に奇妙なことが起こっています。ビューでは、次のようなコレクションを作成しています。
<% foo_options = Bar.find(f.object.bar_id).supplier_contracts.collect(&:foo).uniq.compact : [] %>
これは ActiveRecord モデルのコレクションです。
編集:これはフォームで発生するため、f.object
ここでは別の ActiveRecord モデル インスタンスを参照します。
次の行で次のようにコレクションの要素を逆参照しようとすると:
<%= foo_options.first.inspect %>
有効なモデル オブジェクトが検査されます。今、私がそれを
<%= foo_options.first.id %>
「誤って4になるnilのidを呼び出しました」という例外が発生します。に変更すると
<%= foo_options.first.try :id %>
オブジェクトの ID が表示されます。なぜ例外が発生するのですか?