代码之家  ›  专栏  ›  技术社区  ›  stevec Zxeenu

仍然得到NotNull,尽管属于:foo,可选:true

  •  0
  • stevec Zxeenu  · 技术社区  · 5 年前

    我有一个 has_one belongs_to 联想,就像这样:

    # teacher.rb
    has_one: :student
    

    # student.rb 
    belongs_to :teacher, optional: true
    

    但是当我试图创造一个没有老师的学生。。。

    a = Student.new()
    a.save!
    ActiveRecord::NotNullViolation: PG::NotNullViolation: ERROR:  null value in column "teacher_id" violates not-null constraint
    

    这不合理,因为我 optional: true . 我试过了 rake db:drop db:create db:migrate db:seed 无数次但仍然是同样的错误

    0 回复  |  直到 5 年前
        1
  •  1
  •   stevec Zxeenu    5 年前

    多亏了@dbugger和@danielsindrestean,在另一个论坛的帮助下,我发现这就像进入现有的迁移文件并更改一样简单 null: false null: true . 然后重新创建数据库。或者运行迁移以更改 null:true 如果正在使用现有的应用程序。不管怎样, 必须是