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 %>

我收到一个异常“为 nil 调用 id,错误地为 4”。如果我将其更改为

<%= foo_options.first.try :id %>

一切正常,它显示了对象的 ID。为什么会发生异常?

4

0 回答 0