Мое требование - чтобы объект (тройник) обновлялся, если на нем не было сыгранных раундов. Если на нем были сыграны раунды, то я хочу, чтобы объект (тройник) был заархивирован (для активного атрибута установлено значение false), а обновления были применены к клону объекта.
Моей первой мыслью было, что я перезапишу метод обновления в модели Tee примерно так же, и у меня будет приватный метод, который обрабатывает архив, клон и изменение:
def update
if(self.rounds.count == 0)
super
else
#archive, clone and apply changes
archive_clone_and_change
return false
end
end
Это кажется грязным, потому что я возвращаю false при успешном обновлении архива. Это также будет сложно, когда я попытаюсь применить изменения в методе archive_clone_and_change.
Должен ли я делать это в контроллере вместо метода или мой подход имеет смысл?