Tôi có một mẫu đăng ký.Rails 3: rollback cho after_create
Khi người dùng đăng ký, ứng dụng được cho là lưu dữ liệu trong bảng enrollments
và trong bảng users
. (Tôi cần sự tách biệt này vì hồ sơ của người dùng có thể thay đổi nhưng dữ liệu anh ta nhập cho đăng ký cụ thể đó phải được lưu trữ. Vì vậy, ngay cả khi sau này người dùng thay đổi họ của anh ấy, trong biểu mẫu đăng ký, tôi sẽ có thông tin ban đầu của anh ấy.)
vì vậy, tôi đã suy nghĩ về tiết kiệm dữ liệu trong bảng enrollments
sau đó có một cuộc gọi after_create, như thế này ...
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
vấn đề là, nếu tiết kiệm cho người sử dụng không vì lý do nào. Làm cách nào để khôi phục và hủy dữ liệu đã lưu từ bảng enrollments
?
thể một người dùng ghi danh nhiều lần? Nếu không, tôi chỉ cần thêm các trường bổ sung trực tiếp trong bảng người dùng. –
Thực tế, đó là phụ huynh/người giám hộ đăng ký một đứa trẻ đến nhà trẻ. Vì vậy, có, cha mẹ có thể đăng ký một đứa trẻ nhiều lần. – leonel
Với tôi, có vẻ như việc đặt save_corresponding_user trong after_create sẽ là một vấn đề. Điều gì xảy ra khi người dùng đăng ký lại? Bạn sẽ không muốn tạo một đối tượng người dùng mới cho họ. Ngoài ra, bảng đăng ký có thể có cột user_id không? Điều đó sẽ không được phổ biến trong mã của bạn ở trên. Nếu đó là tôi, tôi sẽ chỉ quấn việc tạo đăng ký và người dùng trong một giao dịch, điều này sẽ xử lý việc quay lại cả hai trong trường hợp có lỗi. –