gpt4 book ai didi

ruby-on-rails - ActiveModel::MissingAttributeError: 无法使用 FactoryGirl 写入未知属性 `ad_id'

转载 作者:行者123 更新时间:2023-12-03 09:22:31 26 4
gpt4 key购买 nike

我有以下型号:

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

我定义了以下工厂:
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

当我尝试这样做时:

ad = FactoryGirl.create(:ad) 我收到以下错误 ActiveModel::MissingAttributeError: can't write unknown attribute ad_id'就在我决定广告工厂中图像关联的那一行。

我在这里做错了什么?

最佳答案

当你说:

has_one :image

Rails 希望你定义一个 ad_id场在 images table 。鉴于您的协会组织方式,我假设您有一个 image_id和一个 logo_id ads表所以而不是:
class Ad < ActiveRecord::Base
belongs_to :page

has_one :image
has_one :logo
end

你可能的意思是:
class Ad < ActiveRecord::Base
belongs_to :page
belongs_to :image
belongs_to :logo
end

如果不是这种情况,那么您需要添加 ad_id列到两个 ImageLogo .

关于ruby-on-rails - ActiveModel::MissingAttributeError: 无法使用 FactoryGirl 写入未知属性 `ad_id',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20295710/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com