Ruby on rails 如何检索具有附加文件的对象,并基于一组预先排序的值对这些对象进行排序?

Ruby on rails 如何检索具有附加文件的对象,并基于一组预先排序的值对这些对象进行排序?,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,paperclip,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Paperclip,我正在使用RubyonRails 3.2.2和曲别针2.7.0。我想从数据库中检索数据,其中记录/对象有一个附加文件(在我的例子中是一个图像文件),并根据一组预先排序的值对这些对象进行排序。也就是说,我有image\u file\u name(由回形针gem处理)和status(status可以是published,unpublished,blocked)数据库表列,我希望: 返回的数据主要包含与图像关联的记录/对象(可能可以通过回形针gem进行处理) 在步骤#1中检索到的对象按已阻止、未发布和

我正在使用RubyonRails 3.2.2和曲别针2.7.0。我想从数据库中检索数据,其中记录/对象有一个附加文件(在我的例子中是一个图像文件),并根据一组预先排序的值对这些对象进行排序。也就是说,我有
image\u file\u name
(由回形针gem处理)和
status
(status可以是
published
unpublished
blocked
)数据库表列,我希望:

  • 返回的数据主要包含与图像关联的记录/对象(可能可以通过回形针gem进行处理)
  • 在步骤#1中检索到的对象按
    已阻止
    未发布
    已发布
    状态进行排序(按重要性顺序) 此外,如果返回的对象少于5个,那么我希望将其他对象“附加”到这些对象,但不关心步骤1和2中的“过滤器和顺序”


    我如何做到这一点?

    这取决于数据存储。例如,如果要按MySQL中某个字段的特定值排序,可以执行以下操作:

    Model.where('image_file_name is not null').order("field('status', 'blocked', 'unpublished', 'published')")
    

    我不明白你所说的“关心”一组预先排序的值是什么意思。@x1a4-我的意思是,我想按状态设置为
    已阻止
    未发布
    然后
    已发布
    的顺序对对象进行排序(注意:我无法使用
    ASC
    DESC
    语句来查找我要查找的内容)。我尝试了您的语句,但
    顺序(“字段('status','blocked','unpublished','published')”
    似乎无法按预期工作。我通过使用
    顺序(“字段('status','blocked','unpublished','published')”)解决了这个问题(请注意,
    ”没有引用status)……现在,如果返回的对象少于5个,那么如何将其他对象“附加”到这些对象上,而不考虑步骤#1和#2所做的“筛选和排序”
    集合谢谢。我打开了另一个与此相关的问题:。