tutorial rails factorybot example bot association ruby-on-rails factory-bot

ruby-on-rails - rails - factorybot association



ActiveModel:: MissingAttributeError: no se puede escribir el atributo desconocido `ad_id ''con FactoryGirl (1)

Tengo los siguientes modelos:

class Ad < ActiveRecord::Base belongs_to :page has_one :image has_one :logo end class Page < ActiveRecord::Base has_many :logos has_many :images has_many :ads end class Image < ActiveRecord::Base belongs_to :page has_many :ads end

Y he definido las siguientes Fábricas:

factory :page do url ''test.com'' end factory :image do width 200 height 200 page end factory :ad do background ''rgb(255,0,0)'' page image end

Cuando trato de hacer esto:

ad = FactoryGirl.create (: ad) Recibo el siguiente error ActiveModel::MissingAttributeError: can''t write unknown attribute ad_id'' justo en la línea donde decido la asociación de imágenes en la Fábrica de anuncios.

¿Qué estoy haciendo mal aquí?


Cuando tu dices:

has_one :image

Rails espera que usted defina un campo ad_id en la tabla de images . Dada la forma en que están organizadas sus asociaciones, asumo que tiene un image_id y un logo_id en la tabla de ads , así que en lugar de:

class Ad < ActiveRecord::Base belongs_to :page has_one :image has_one :logo end

Probablemente te refieres a

class Ad < ActiveRecord::Base belongs_to :page belongs_to :image belongs_to :logo end

Si ese no es el caso, entonces necesita agregar columnas ad_id a Image y Logo .