Ruby on rails 为什么我可以在seeds.rb中使用未定义的多态关联在模型上运行create,但不能在控制器中运行?

Ruby on rails 为什么我可以在seeds.rb中使用未定义的多态关联在模型上运行create,但不能在控制器中运行?,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我在seeds.rb文件中运行以下代码 page = BlocksEditor::Page.create(name: "A Page") 当我尝试在控制器中运行相同的代码时。我得到一个验证错误,说多态关联是空的,这是真的。我在运行seed时注销了页面,type和id字段按预期为空页面。有效?返回true 为什么种子文件中的验证没有失败?更好的是,如何定义可选的多态关联?我知道我想要字段,但我知道它们有时不会被填充。显然,Rails 5。使用optional:true将其设置为可选。我仍然不知道

我在
seeds.rb
文件中运行以下代码

page = BlocksEditor::Page.create(name: "A Page")
当我尝试在控制器中运行相同的代码时。我得到一个验证错误,说多态关联是空的,这是真的。我在运行seed时注销了
页面
,type和id字段按预期为空<代码>页面。有效?返回true

为什么种子文件中的验证没有失败?更好的是,如何定义可选的多态关联?我知道我想要字段,但我知道它们有时不会被填充。

显然,Rails 5。使用
optional:true
将其设置为可选。我仍然不知道为什么种子文件给出了与控制器不同的行为,但这解决了问题