gpt4 book ai didi

ruby-on-rails - 如何删除和返回 ActiveRecord 关系对象中的第一个元素?

转载 作者:数据小太阳 更新时间:2023-10-29 08:04:22 26 4
gpt4 key购买 nike

我想删除并返回 AR 关系对象中的第一个元素。我用了shift , 但它不会删除对象。

对于普通数组,移位按预期工作:

a = [1, 2, 3]
a.shift # => 1
a # => [2, 3]

这是行不通的。变量 @attachment_versions 在使用 shift 前后保持相同的大小。

@attachment = Attachment.with_associations.find(params[:id])
@attachment_versions = @attachment.attachment_versions
@current_version = @attachment_versions.shift

# this raises `true`
raise @attachment_versions.include?(@current_version).to_s

def self.with_associations
includes(attachment_versions: :owner, comments: [:author, :attachments])
end

我知道 AR 关系对象不仅仅是一个数组,但我认为 shift 应该以相同的方式工作。

最佳答案

你可以很容易地先把它变成一个数组。

@attachment_versions_array = @attachment_versions.to_a

@attachment_versions_array.shift
=> <Attachment_version......etc

关于ruby-on-rails - 如何删除和返回 ActiveRecord 关系对象中的第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22071608/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com