Ruby on rails 从特定起始值排序activerecord关系
假设我有一个Ruby on rails 从特定起始值排序activerecord关系,ruby-on-rails,Ruby On Rails,假设我有一个photo\u id34 此照片是特定摄影师资产的一部分当前摄影师。照片。所有:1、23、24、34、78 如何获得关系当前\u摄影师照片。所有结果从提供的特定照片ID开始=>34、78、1、23、24 编辑:我想保持照片的一般顺序。每张照片前面都有先前创建的照片。(这是用于照片传送带)您可以创建两个结果集,一个用于>=34,另一个用于=34,另一个用于
photo\u id
34
此照片是特定摄影师资产的一部分当前摄影师。照片。所有:1、23、24、34、78
如何获得关系当前\u摄影师照片。所有结果从提供的特定照片ID开始=>34、78、1、23、24
编辑:我想保持照片的一般顺序。每张照片前面都有先前创建的照片。(这是用于照片传送带)您可以创建两个结果集,一个用于>=34,另一个用于<34,然后将它们合并
当前摄影师。照片。其中('id>=?',34)+当前摄影师。照片。其中('id<?',34)
这些可能是作用域:
scope :above_id, ->(id) { where('id >= ?', id) }
scope :below_id, ->(id) { where('id < ?', id) }
您可以创建两个结果集,一个用于>=34,另一个用于<34,然后将它们合并
当前摄影师。照片。其中('id>=?',34)+当前摄影师。照片。其中('id<?',34)
这些可能是作用域:
scope :above_id, ->(id) { where('id >= ?', id) }
scope :below_id, ->(id) { where('id < ?', id) }
我认为您最好在应用程序领域实现。我真的不知道如何在数据库级别以有意义的方式完成它
您可以按原始顺序获取记录,然后操纵结果
current_photographer.photos.partition {|photo| photo.id < 34 }.reverse.flatten
current_摄影师.photos.partition{| photo | photo.id<34}.reverse.flatten
我认为您最好在应用程序领域实现。我真的不知道如何在数据库级别以有意义的方式完成它
您可以按原始顺序获取记录,然后操纵结果
current_photographer.photos.partition {|photo| photo.id < 34 }.reverse.flatten
current_摄影师.photos.partition{| photo | photo.id<34}.reverse.flatten
我专注于通过一个查询找到解决方案。。但你的解决方案确实起到了作用。thanksI专注于通过单个查询找到解决方案。。但你的解决方案确实起到了作用。非常感谢你。您的解决方案可以在单个查询中运行。我已经接受了另一个答案,但你的答案稍微干净一点。操作单个查询是一个不错的选择。非常感谢。您的解决方案可以在单个查询中运行。我已经接受了另一个答案,但你的答案稍微干净一点。操作单个查询是一种方法。