2009-08-25 20 views
6

Tengo modelos Foo y Bar. Bar tiene la columna foo_id. Cuando llamo Bar.foo_id me sale el error missing attribute: foo_idatributo faltante en activerecord

Tenga en cuenta que esto no es un error método no definido y la columna es sin duda en el PP. ¿Cuáles son algunas causas comunes de esto?

Gracias

+0

¿Cómo está cargando su barra? –

Respuesta

35

Probablemente tiene algo que ver con su método de búsqueda? Por ejemplo se hizo un: seleccione en un hallazgo:

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

En ese caso, sólo se puede firstvar acceso y secondvar aunque tenga definido foo_id

espero que ayude! =)

+1

Tenía default_scope: includes => [: model1,: model2] defined .. en su lugar, utilicé un ámbito personalizado con todas las necesidades include. –

+0

En mi caso, el problema era que el objeto había sido almacenado en la memoria caché y todavía estaba usando la versión anterior que no tenía el nuevo atributo. Una vez que se borró el caché, las cosas funcionaron como se esperaba. –

2

son usted que llama

Bar.foo_id 

o

bar = Bar.new 
bar.foo_id 

A menos que tenga una variable de clase para Bar, es necesario mirar a foo_id en una instancia de barra. Espero que eso ayude. Aclamaciones.

Cuestiones relacionadas