0

我正在使用 rails 3 实现一个 Web 解决方案,其中用户有一个“操作”列表。它们可以是待处理的或验证的,并且只有管理员可以验证。

两个典型的动作是:

1/ 报告不正确的图片(如果管理员验证,则图片将被删除,因此我们需要其 id) 2/ 提交新类别(如果管理员验证,则将添加类别)

每个动作都有特定数量的点数,这些点数会影响用户的声誉,这使得它成为继承的良好候选者(验证结束时的共享行为、子项中的特定字段和方法实现)。

我计划在模型中使用“onValidate”方法,该方法可以删除图片(1/)或添加新类别(2/),但将其放入模型中感觉很奇怪。

您能否让我知道如何增强该设计并将其移动到控制器中?

4

1 回答 1

0

如果我理解您正确描述的内容,我不明白您为什么认为在模型中包含此代码是一件坏事。我认为你的 User has_many Actions,一个 Action 有一个分数。当一个动作被验证时,其他一些对象的状态会发生变化(删除一张图片,添加一个类别')

class DeletePictureAction < Action
  belongs_to :user
  belongs_to :picture

  def on_validate
     do_subclass_specific_stuff_to(picture)
     add_to_user_score(score)
  end
end

这里似乎与路由无关,因此它在控制器中没有位置......

于 2011-06-28T10:29:35.490 回答