Tôi có mô hình User.rb và mô hình UserSetting.rb mà tôi muốn ủy quyền (cả hai phương thức getter và setter).Rails Delegate Đặt giá trị
trong user.rb
delegate :email_opt_in, :email_opt_in=, :to => :user_setting
Thoạt nhìn này hoạt động tuyệt vời.
user = User.find(1)
user.email_opt_in #=> false
user.email_opt_in = true
user.save
user.email_opt_in #=> true
Nhưng nhìn kỹ hơn, user.save
không truyền sang mô hình UserSetting.
User.find(1).email_opt_in #=> false
(Vì vậy, giá trị không được lưu vào cơ sở dữ liệu).
Đây là câu hỏi của tôi: Làm thế nào tôi có thể nhận UserSetting để lưu tự động khi một trong các thuộc tính của nó được thay đổi và sau đó được lưu bởi người dùng của nó?
Điều này chỉ xảy ra khi thuộc tính UserSetting được thay đổi nếu không người dùng được lưu vào cơ sở dữ liệu, nó sẽ kích hoạt thêm không cần thiết để ghi cơ sở dữ liệu vào một cơ sở dữ liệu không cần thiết &.
Liệu những thay đổi luôn đi qua các hình thức? Bằng cách đó, người ta có thể sử dụng accept_nested_attributes với fields_for. – lulalala