我只需要在属性被填充时指定它们,但是如果它们是nil
或{}
或''
,我不应该指定这些参数
模型部分是:
particular :string default("No"), not null
color :enum default("red"), not null
只有在没有指定值的情况下,我才需要使用默认值来创建。
Section.create(name: @name, particular: @particular, color: @color )
但是我用nil初始化@particular和@color,我得到了这个错误:
ActiveRecord::NotNullViolation:
PG::NotNullViolation: ERROR: null value in column "particular"
在这种情况下,我不需要指定以获取默认值
Section.create(name: @name )
1条答案
按热度按时间bjp0bcyl1#
使用
Hash#compact
删除具有空值的键:我也非常怀疑你是否想使用枚举类型来实现这个功能。为了添加新的可能值或删除现有的选项,你需要删除该类型并重新添加它。
只有当可能的选项是有限的且不变的时,才应该真正考虑枚举类型。