【发布时间】:2018-04-21 12:50:32
【问题描述】:
我正在尝试将我的项目从 Rails 5.0 迁移到 5.2
项目通过.build_%related_model% 广泛使用相关模型的创建,它在rails 5.0 上工作,现在它已经坏了。
是否删除了此功能,还是应该使用其他语法?
class User < ActiveRecord::Base
belongs_to :profile, inverse_of: :user
end
class Profile < ActiveRecord::Base
has_one :user, inverse_of: :profile
end
new_user = User.new
new_user.build_profile
new_user.save
之前这段代码同时创建了User 和他的Profile。现在这将只创建User,而不创建Profile。
任何想法如何解决这个问题?
【问题讨论】:
-
也许您的配置文件模型已经更改了新属性,添加了构建它需要添加的内容?您的个人资料迁移文件是什么?
-
@ImreRaudsepp 模型保存没有任何错误。它只是不保存相关模型。同样,这段代码之前运行良好。
-
你只更新了 Rails 版本而没有改变任何其他内容,并且它不再工作要明确吗?
-
Gems 和 Ruby 版本也是如此。
-
尝试检查已构建配置文件的有效性:
profile = new_user.build_profile; profile.valid?和profile.errors如果无效
标签: ruby-on-rails ruby-on-rails-5 rails-activerecord