覆盖更新到rails中的更新或存档

时间:2012-04-01 15:22:26

标签: ruby-on-rails ruby

我的要求是我想要一个对象(tee)更新,如果没有播放过它。如果已经播放了轮次,那么我希望将对象(tee)归档(活动属性设置为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 :(得分:0)

模型与控制器决策,它们可以主观,但我会在控制器中。它实际上是应用于模型的逻辑,而不是与模型本身直接相关。