Ruby on rails Rails:渐进式验证,使用STI还是其他什么?
我有一个rails应用程序,用户可以在其中共享特定类型的照片。目前,该应用程序要求照片在生效之前必须以多种方式进行分类,因此用户必须一次上传一张照片并对其进行分类,以便将其保存到数据库中 分类需要一些时间,所以我想允许用户上传一批照片,然后在他们有时间的时候回来对它们进行分类,但是当照片存储时没有完全分类,我不希望它们与“完整”的照片混合在一起 我希望这是一个理想的“向导”系统,用户可以一次上传一堆照片,然后在有时间的时候通过他们的个人队列对每张照片进行分类(完成创建) 我的问题是:你会如何处理这样的问题 我一直在考虑使用单表继承来创建Photo的两个子类:Ruby on rails Rails:渐进式验证,使用STI还是其他什么?,ruby-on-rails,ruby-on-rails-3,validation,wizard,single-table-inheritance,Ruby On Rails,Ruby On Rails 3,Validation,Wizard,Single Table Inheritance,我有一个rails应用程序,用户可以在其中共享特定类型的照片。目前,该应用程序要求照片在生效之前必须以多种方式进行分类,因此用户必须一次上传一张照片并对其进行分类,以便将其保存到数据库中 分类需要一些时间,所以我想允许用户上传一批照片,然后在他们有时间的时候回来对它们进行分类,但是当照片存储时没有完全分类,我不希望它们与“完整”的照片混合在一起 我希望这是一个理想的“向导”系统,用户可以一次上传一堆照片,然后在有时间的时候通过他们的个人队列对每张照片进行分类(完成创建) 我的问题是:你会如何处理
IncompletePhoto
和CompletePhoto
。IncompletePhoto
只需要图像文件本身,但是CompletePhoto
需要分类。用户可以查看自己未完成的照片,但应用程序中的搜索结果只能返回完整的照片
这听起来像是解决我试图解决的问题的正确方法,还是有更好的方法?我以前从未使用过STI,我不确定这是否是一个好主意。我想说,创建STI是为了在不同对象具有某些(但不是所有)公共属性的情况下非常有用,因为在数据库和模型中都可以从DRY中获益。我不确定是否有办法正确更改此类模型的实例类型。好的,您可以只修改
type
列本身,但是对象的Ruby类将是相同的,验证也是相同的,除非您在保存后重新获取模型,然后手动运行验证。对我来说,后者听起来像一个肮脏的黑客
作为一种正确的方法,我建议您添加
complete
列,并以validates…,:if=>:complete
的形式使用验证器。谢谢,这很有意义,也是我决定的方向。