2011-12-11 9 views
12

artículos tienda has_many, y un elemento belongs_to tiendaCarriles 3 - has_many asociación no guardar (TypeError)

hago un nuevo almacén, excepto que, todo bien. Compruebo que puedo llamar .items en él.

ruby-1.9.2-p290 :063 > s.items 
    Item Load (0.3ms) SELECT "items".* FROM "items" WHERE "items"."store_id" = 12 
=> [] 

¿Pero cuando intento llamar crear o válido? devuelve lo siguiente:

ruby-1.9.2-p290 :064 > s.items.create 
    Store Load (0.7ms) SELECT "stores".* FROM "stores" WHERE "stores"."id" = 12 LIMIT 1 
TypeError: Cannot visit Store 

¡Nunca antes había visto el siguiente error, así que me estoy metiendo de cabeza!


EDIT: Después de una caída y Vuelva a migrar, aún así obtener lo siguiente:

ruby-1.9.2-p290 :008 > Item.create(:store_id => 5) 
    Store Load (0.2ms) SELECT "stores".* FROM "stores" WHERE "stores"."id" = 5 LIMIT 1 
TypeError: Cannot visit Store 
+0

tengo otra has_many, belongs_to asociación (mismo proyecto) que está trabajando todos los ponis y unicornios. No puedo entender lo que está pasando con este. – Galaxy

+0

Parece un error de Arel – clyfe

Respuesta

37

En el caso de cualquier otra persona se encuentra con este problema, Resultó ser un problema de validación con el 'artículo' modelo. Originalmente tuve esta configuración:

validates :name, :presence => true, uniqueness => { :scope => :store }   

Con el alcance establecido en: almacenar. Resultó que tenía que indicar expresamente: store_id:

validates :name, :presence => true, uniqueness => { :scope => :store_id }   
Cuestiones relacionadas