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

时间:2015-03-30 01:48:31

标签: ruby-on-rails

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

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

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

更新:感谢@Alex我发现我可以使用状态机来完成。有AASM,工作流程和政治家。对于这种情况,什么可能是最好的?

1 个答案:

答案 0 :(得分:0)

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