在activerecord中缺少属性

时间:2009-08-25 03:05:32

标签: ruby-on-rails ruby activerecord

我有模型FooBarBarfoo_id。 当我致电Bar.foo_id时,我收到错误missing attribute: foo_id

请记住,这不是未定义的方法错误,列肯定在db中。造成这种情况的常见原因是什么?

由于

3 个答案:

答案 0 :(得分:37)

可能它与您的查找方法有关?例如,你做了一个:在一个查找中选择:

Foo.find(:all, :select => "firstvar, secondvar")

在这种情况下,即使你有foo_id定义

,你也只能访问firstvar和secondvar

希望它有所帮助! =)

答案 1 :(得分:2)

你在打电话吗

Bar.foo_id

bar = Bar.new
bar.foo_id

除非您有Bar的类变量,否则需要查看Bar实例上的foo_id。我希望有所帮助。欢呼声。

答案 2 :(得分:0)

这不时发生在我身上。我的原因几乎总是在类中指定.select()的字段上一个被遗忘了很久的finder方法,并且缺少的属性(通常在定义了finder之后很久才添加)现在在应用程序中的某个地方被调用,但未在该.select中指定()。

该错误很常见,足以在Rails指南中赢得警报:“ Be careful because ...