У меня есть модель, Фу, у которой есть множество баров. У него есть виртуальный атрибут current_baz, который возвращает атрибут baz самого последнего бара из ассоциации (если он существует). Я хотел бы определить Foo.current_baz = так, чтобы можно было сказать my_foo.update_attributes (: current_baz => 7), и, в частности, я хотел бы, чтобы он работал при создании нового Foo. Таким образом, я могу сказать
Foo.new(:current_baz => 7, ...)
и это должно сделать
self.bars.build(:baz => 7)
Конечно, это не работает, потому что у нового Foo еще нет идентификатора, и поэтому новый Bar недействителен. Я знаю, как обойти это в контроллере, создавая сначала Foo, а затем Bar и объединяя оба в транзакции. Но я бы очень хотел сохранить эту логику в модели, если это возможно. Кажется почти возможно. У кого-нибудь есть предложения?