我的Rails项目有三个FactoryBot工厂。如果我用FactoryBot.lint测试工厂的有效性,图书工厂是无效的-根据这个错误。我做错了什么吗?
Book format can't be blank
book.rb factory:
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
所有者.rb工厂:
FactoryBot.define do
factory :owner do
email { 'john@doe.com' }
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上得到这个错误消息-而不是在owner上(这也很奇怪,但至少是一致的?)。
第2集:This Works:
FactoryBot.define do
factory :book do
title { 'The Hobbit' }
owner
book_format { BookFormat.create( name: 'default' ) }
end
end
1条答案
按热度按时间u3r8eeie1#
您可以使用工厂机器人创建
BookFormat
,之后您将不需要进入book factory并添加可能出现在BookFormat
模型中的新字段: