我有一张报名表。
当用户注册时,应用程序应该将数据保存在enrollments
表和users
表中。(我需要这种分离,因为用户的个人资料可以更改,但他为该特定注册输入的数据必须存档。所以即使稍后用户更改了他的姓氏,在注册表格中我也会有他的初始信息。)
所以我正在考虑在enrollments
表中保存数据然后有一个 after_create 调用,像这样......
class Enrollment < ActiveRecord::Base
after_create :save_corresponding_user
def save_corresponding_user
user = User.new
user.full_name = self.user_full_name
user.email = self.user_email
user.mobile_phone = self.user_mobile_phone
user.save
end
end
问题是,如果保存用户因任何原因失败怎么办。如何回滚和销毁enrollments
表中刚刚保存的数据?