Ruby on Rails has_many关联定义自定义排序

时间:2018-02-16 16:12:41

标签: ruby-on-rails activerecord activemodel

我遇到了一个问题,无法弄清楚如何修复它。

我基本上有一个ModelA与另一个ModelB有一个has_many关系。假设ModelB有两个属性。一个created_at和一个filename。现在让我们说created_at由于竞争条件而实际上并不准确。但是filename包含准确的时间戳。不幸的是,文件名也不一致,预先提取和添加时间戳不是一种选择。

有没有办法做这样的事情?

class ModelA
    has_many: model_bs, order: extracted_timestamp_from_filename.asc

    def extracted_timestamp_from_filename
        #self would ideally be a single model_bs
        extract_timestamp_from_filename(self.filename)
    end
end

至少使用order我认为如果没有实际的正确时间戳属性,这可能无法正常工作。有没有办法获得这个功能?如果有办法用钩子以某种方式做到这一点我还没找到它。

1 个答案:

答案 0 :(得分:0)

这不是一个真正的修复,但事实证明,带有MongoDB的Rails实际上能够按字符串排序,而且我的示例中的文件可以像这样排序。但是,如果文件名具有不同的格式,则仍然无效。在我的例子中,我想我现在就侥幸逃脱。

感谢。

相关问题