Перезаписать обновление на обновление или архив в рельсах - PullRequest
0 голосов
/ 01 апреля 2012

Мое требование - чтобы объект (тройник) обновлялся, если на нем не было сыгранных раундов. Если на нем были сыграны раунды, то я хочу, чтобы объект (тройник) был заархивирован (для активного атрибута установлено значение 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.

Должен ли я делать это в контроллере вместо метода или мой подход имеет смысл?

1 Ответ

0 голосов
/ 01 апреля 2012

Модель против решения контроллера, они могут стать субъективными, но я бы сказал об этом в контроллере.Это действительно логика, применяемая к модели, напрямую не связанная с самой моделью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...