FactoryBot:为什么关联不起作用(不能为空)?

问题描述 投票:0回答:0

我的 Rails 项目有三个 FactoryBot 工厂。如果我使用 FactoryBot.lint 测试工厂有效性,则书籍工厂无效 - 根据此错误。我做错了什么吗?

Book format can't be blank

book.rb 工厂:

FactoryBot.define do
  factory :book do
    title { 'The Hobbit' }
    book_format
    owner
  end
end

book_format.rb 工厂:

FactoryBot.define do
  factory :book_format do
    name { 'default' }
  end
end

owner.rb 工厂:

FactoryBot.define do
  factory :owner do
    email { '[email protected]' }
    password { 'password'}
  end
end

编辑:意识到我忘了从模型中添加代码 - 这里是:

书本模型相关代码:

  belongs_to :book_format, counter_cache: true
  belongs_to :owner, counter_cache: true

book_format模型的相关代码:

  has_many :books

所有者模型的相关代码:

  has_many :books, dependent: :destroy

我不明白为什么我在 book_format 上收到此错误消息 - 而不是在所有者上(这也很奇怪但至少是一致的?)。

ruby-on-rails factory-bot
© www.soinside.com 2019 - 2024. All rights reserved.