Rails 3,新模型B与旧模型A是1:1,如何为每个已经存在的A记录自动创建新的B记录
导轨 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Q1:因为您的数据集很小,所以我会在控制台中工作:
Q2:在您的客户模型中使用以下回调:
after_create
并在内部构建 cust_infoQ1: Because you've a small dataset, I'd work in the console:
Q2: use the following callback:
after_create
in your customer model and build the cust_info inside