把一个老项目用 rails5 重构了,并且把数据迁移进来,期间数据无法保存。
反复查了一下,belongs_to 的默认行为发送了变更,belongs_to association 默认是 required 的,除非显式设置为 optional
即
class Post < ApplicationRecord
belongs_to :user
end
等同于:
class Post < ApplicationRecord
belongs_to :user, required: true
end
如果要恢复为可选的话,可以这么写:
class Post < ApplicationRecord
belongs_to :user, optional: true
end
更多可以查看:
http://blog.bigbinary.com/2016/02/15/rails-5-makes-belong-to-association-required-by-default.html