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

时间:2016-11-25 05:14:59

标签: ruby-on-rails ruby ruby-on-rails-5

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

page = BlocksEditor::Page.create(name: "A Page")

当我尝试在控制器中运行相同的代码时。我得到一个验证错误,说多态关联是空的,这是真的。我在运行种子时注销了page,并且type和id字段按预期为空。 page.valid?返回true。

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

1 个答案:

答案 0 :(得分:1)

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