Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:渐进式验证,使用STI还是其他什么?_Ruby On Rails_Ruby On Rails 3_Validation_Wizard_Single Table Inheritance - Fatal编程技术网

Ruby on rails Rails:渐进式验证,使用STI还是其他什么?

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应用程序,用户可以在其中共享特定类型的照片。目前,该应用程序要求照片在生效之前必须以多种方式进行分类,因此用户必须一次上传一张照片并对其进行分类,以便将其保存到数据库中 分类需要一些时间,所以我想允许用户上传一批照片,然后在他们有时间的时候回来对它们进行分类,但是当照片存储时没有完全分类,我不希望它们与“完整”的照片混合在一起 我希望这是一个理想的“向导”系统,用户可以一次上传一堆照片,然后在有时间的时候通过他们的个人队列对每张照片进行分类(完成创建) 我的问题是:你会如何处理

我有一个rails应用程序,用户可以在其中共享特定类型的照片。目前,该应用程序要求照片在生效之前必须以多种方式进行分类,因此用户必须一次上传一张照片并对其进行分类,以便将其保存到数据库中

分类需要一些时间,所以我想允许用户上传一批照片,然后在他们有时间的时候回来对它们进行分类,但是当照片存储时没有完全分类,我不希望它们与“完整”的照片混合在一起

我希望这是一个理想的“向导”系统,用户可以一次上传一堆照片,然后在有时间的时候通过他们的个人队列对每张照片进行分类(完成创建)

我的问题是:你会如何处理这样的问题

我一直在考虑使用单表继承来创建Photo的两个子类:
IncompletePhoto
CompletePhoto
IncompletePhoto
只需要图像文件本身,但是
CompletePhoto
需要分类。用户可以查看自己未完成的照片,但应用程序中的搜索结果只能返回完整的照片


这听起来像是解决我试图解决的问题的正确方法,还是有更好的方法?我以前从未使用过STI,我不确定这是否是一个好主意。

我想说,创建STI是为了在不同对象具有某些(但不是所有)公共属性的情况下非常有用,因为在数据库和模型中都可以从DRY中获益。我不确定是否有办法正确更改此类模型的实例类型。好的,您可以只修改
type
列本身,但是对象的Ruby类将是相同的,验证也是相同的,除非您在保存后重新获取模型,然后手动运行验证。对我来说,后者听起来像一个肮脏的黑客


作为一种正确的方法,我建议您添加
complete
列,并以
validates…,:if=>:complete

的形式使用验证器。谢谢,这很有意义,也是我决定的方向。