У меня есть модель User.rb и модель UserSetting.rb, которой я хотел бы делегировать (методы getter и setter).
в user.rb
delegate :email_opt_in, :email_opt_in=, :to => :user_setting
На первый взгляд это прекрасно работает.
user = User.find(1)
user.email_opt_in #=> false
user.email_opt_in = true
user.save
user.email_opt_in #=> true
Но если присмотреться, user.save
не распространяется на модель UserSetting.
User.find(1).email_opt_in #=> false
(Таким образом, значение не было сохранено в базе данных).
Это мой вопрос: как я могу получить UserSetting для автоматического сохранения, когда один из его атрибутов изменяется, а затем сохраняется его пользователем?
Это должно происходить только в том случае, если атрибут UserSetting изменяется, в противном случае каждый раз, когда пользователь сохраняется в базе данных, он вызывает дополнительную ненужную и нежелательную запись в базу данных.