如何有效地为Rails模型设置已批准、未批准和草稿



我的应用程序中有一个名为photos的模型。任何用户都可以上传照片。最初上传时,我将它们存储在一个名为tempfile的临时字段中。然后管理员可以审查并批准它们。如果获得批准,approved字段将为true,照片将上传到s3。照片将保存在file字段中,tempfile将被删除。数据库中的submitted字段将设置为true。如果上传失败,它将被标记在数据库中。如果照片被拒绝,用户可以重新提交。

  • 因此,在正常视图中,我需要显示approved和非failed uploads
  • 如果用户编辑照片,则应为unapprovedsubmit,直到管理员批准为止
  • 在重新提交菜单中,我必须显示unapprovedunsubmitted照片
  • 如果用户重新提交,提交字段将设置为true

从外观上看,我必须使用大量的数据库字段,这变得很复杂。有没有办法更好地处理这个问题?保存草稿和单独保存未审核的方式?如何有效地做到这一点?

更新:多亏了@Alex,我发现我可以用状态机做到这一点。有AAM、工作流和政治家。对于这种情况,什么可能是最好的

您考虑过单表继承吗?它将允许您将其拆分为多个类。

最新更新