我的要求是我想要一个对象(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方法中应用更改时,它也会变得棘手。
我应该在控制器而不是方法中执行此操作,还是我的方法有意义?
答案 0 :(得分:0)
模型与控制器决策,它们可以主观,但我会在控制器中。它实际上是应用于模型的逻辑,而不是与模型本身直接相关。