播种失败:"field can't be blank" 但我正在播种一个值
Seeding fails: "field can't be blank" but I'm seeding with a value
我有 Article
table 的必填字段:
t.string :article_type, null: false
并且在模型中:
validates :article_type, presence: true
enum article_type: [ :type1, :type2, :type3, :type4, :type5 ]
我的种子中有:
books = Book.all
books.each do |book|
title = Faker::Lorem.sentence(3)
article_type = ["type1", "type2", "type3", "type4", "type5"].sample
book.articles.create!( title: title,
article_type: article_type )
end
问题: create
行产生错误:ActiveRecord::RecordInvalid: Validation failed: Article type can't be blank
。是什么原因造成的? (我可以确认 .sample
行有效并选择五种类型中的一种)
更新: 如果我将 article_type
从字符串更改为整数,它会起作用。我应该怎么办?因为它不是真正的整数,是不是...?
Rails enum
期望相应的数据库列是整数,但你的是一个字符串。
所以要么更改为整数,要么用值验证替换枚举。
尝试找出错误。看看这颗没有问题的种子能不能继续分割?
article_type = "type1"
book.articles.create!( title: title,
article_type: article_type )
我有 Article
table 的必填字段:
t.string :article_type, null: false
并且在模型中:
validates :article_type, presence: true
enum article_type: [ :type1, :type2, :type3, :type4, :type5 ]
我的种子中有:
books = Book.all
books.each do |book|
title = Faker::Lorem.sentence(3)
article_type = ["type1", "type2", "type3", "type4", "type5"].sample
book.articles.create!( title: title,
article_type: article_type )
end
问题: create
行产生错误:ActiveRecord::RecordInvalid: Validation failed: Article type can't be blank
。是什么原因造成的? (我可以确认 .sample
行有效并选择五种类型中的一种)
更新: 如果我将 article_type
从字符串更改为整数,它会起作用。我应该怎么办?因为它不是真正的整数,是不是...?
Rails enum
期望相应的数据库列是整数,但你的是一个字符串。
所以要么更改为整数,要么用值验证替换枚举。
尝试找出错误。看看这颗没有问题的种子能不能继续分割?
article_type = "type1"
book.articles.create!( title: title,
article_type: article_type )