Ruby on rails Rails 4-简单形式&;Rails货币,空值

Ruby on rails Rails 4-简单形式&;Rails货币,空值,ruby-on-rails,simple-form,money-rails,Ruby On Rails,Simple Form,Money Rails,我正在尝试用Rails 4制作一个应用程序,使用简单的表单 我有三个模型——项目、范围和参与者 范围属于项目,并接受参与者的嵌套属性。参与者属于范围并接受范围的嵌套属性 在我的参与者看来,我有一个部分形式 在我的范围模型中,我有一个布尔属性,询问用户是否希望项目的参与者。如果答案是真的,那么我将展示参与者的部分形式,并在参与者模型中提问 在我的javascripts目录中,我有一个表单帮助文件,在其中我使用JS隐藏参与者表单,直到范围表单中的答案(关于想要参与者是真的)出现,在这种情况下,显示部

我正在尝试用Rails 4制作一个应用程序,使用简单的表单

我有三个模型——项目、范围和参与者

范围属于项目,并接受参与者的嵌套属性。参与者属于范围并接受范围的嵌套属性

在我的参与者看来,我有一个部分形式

在我的范围模型中,我有一个布尔属性,询问用户是否希望项目的参与者。如果答案是真的,那么我将展示参与者的部分形式,并在参与者模型中提问

在我的javascripts目录中,我有一个表单帮助文件,在其中我使用JS隐藏参与者表单,直到范围表单中的答案(关于想要参与者是真的)出现,在这种情况下,显示部分内容。这种形式的问题之一是用户是否想要钱。我使用money rails将该属性货币化

我的代码都运行得很好,除了如果您想在项目创建后对其进行编辑,您必须取消选中范围布尔问题(询问您是否需要参与者)并重新选中它,以便显示参与者表单。这就是为什么我修改了我的JS表单助手,以检查在更改事件之前该布尔值是否为真

由于该更改,现在,当我创建一个项目时,当scope属性(询问是否需要参与者)为false时,我无法保存一个新项目,因为我得到一个错误,即参与者中的money对象不能是不完整的。我不明白(在所有项目中)这是如何成为必要的投入的。我的货币初始化器中有一个验证,它验证属性的数字,但应该允许它为零

我更新了我的participant.rb模型以允许null

然而,当我用一个新项目测试这个时,我得到一个错误,它说:“参与成本”列中的error:null值违反了notnull约束

有人知道如何解决这个问题吗

谢谢,