'被叫为nil'访问视图中的集合元素时

时间:2012-05-28 10:58:49

标签: ruby-on-rails actionview

我发生了一些非常奇怪的事情。 在一个视图中,我正在填充这样的集合:

<% 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。 为什么会发生异常?

0 个答案:

没有答案