Rails 3,新模型B与旧模型A是1:1,如何为每个已经存在的A记录自动创建新的B记录

发布于 2024-10-15 18:34:20 字数 556 浏览 7 评论 0原文

导轨 v3.0.3 原始架构有 customers 表,应用程序有 100 个客户的数据。

通过迁移,我们以 1:1 添加 cust_info 表,例如:

customers has_one cust_info 
cust_info belongs_to customers

现在(运行 rake db:migrate 创建新模型后)我们有 100 个“旧”<没有 1:1 所需的 cust_info 记录的强>客户记录。

问题 (1a)(旧数据更新)为我们 100 条现有 客户 记录中的每一条生成所需(空)cust_info 记录的“rails 方式”是什么?

问题 (2)(未来)我们如何修改我们的应用程序,以便在创建新的 customer 记录时,它会同时自动创建关联的 cust_info 记录?

Rails v3.0.3
Original schema has customers table, and the app has data for 100 customers.

via migration we add cust_info table with 1:1, eg:

customers has_one cust_info 
cust_info belongs_to customers

so right now (after running rake db:migrate to create the new model) we have 100 'old' customer records that do not have the 1:1 required cust_info record.

QUES (1a) (legacy data update) what is the "rails way" to generate the required (empty) cust_info record for each of our 100 existing customer records?

QUES (2) (going forward) how to we modify our app so when we create a NEW customer record it will automatically create an associated cust_info record at the same time?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

云之铃。 2024-10-22 18:34:20

Q1:因为您的数据集很小,所以我会在控制台中工作:

Customer.all.each do |c|
   c.create_cust_info.save
end

Q2:在您的客户模型中使用以下回调: after_create 并在内部构建 cust_info

Q1: Because you've a small dataset, I'd work in the console:

Customer.all.each do |c|
   c.create_cust_info.save
end

Q2: use the following callback: after_create in your customer model and build the cust_info inside

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文