2

本当に奇妙なことが起こっています。ビューでは、次のようなコレクションを作成しています。

<% 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 が表示されます。なぜ例外が発生するのですか?

4

0 に答える 0