gpt4 book ai didi

mysql - rails 中# 的未定义方法 `updated_at'

转载 作者:行者123 更新时间:2023-11-29 05:17:14 25 4
gpt4 key购买 nike

我有两个事件记录数组。我合并了这两个数组,现在我想根据“updated_at”字段对它们进行排序。

@notification_challenges=Challenge.where("to_id=? and activity_id=?" ,current_user.id,@activity.id)
@match_results=[]
@notification_challenges.each do |k|
@match_results=@match_results<<MatchResult.where("challenge_id=? and result_confirmation_status=?" ,k.id,1)
end

if !@match_results.blank?
@notifications=@notifications+@match_results
end

if !@notification_challenges.blank?
@notifications=@notifications+@notification_challenges
end

if !@notifications.blank?
@notifications2=(@notifications).sort_by(&:updated_at)
@notifications2=@notifications.reverse
end

但它给出了以下错误:

undefined method `updated_at' for #<MatchResult::ActiveRecord_Relation:0x0000000232e608>

@notifications=(@match_results+@notification_challenges).sort_by(&:updated_at) 

工作正常。但我想检查@match_results 或@notification_challenges 是否为空,所以我合并这两个数组,然后应用“sort_by”函数。

最佳答案

MatchResult 在您的情况下可能会返回一个 MatchResult 对象,其中包含一组记录,因此当您将 MatchResult 添加到您的第一个数组时你最终会得到类似的东西:

[a, b, c, MatchResult[d, e, f]]

此数组中的第 4 个元素是没有 update_at 属性或方法的 MatchResult 对象。

您可以尝试遍历 MatchResult 中的结果并将每个结果插入第一个数组:

results = MatchResult.where("challenge_id=? and result_confirmation_status=?" ,k.id,1)
@match_results = results.map{|c| @match_results << c}

只是一个想法,因为我不确定 MatchResult 在您的情况下返回什么。

关于mysql - rails 中#<MatchResult::ActiveRecord_Relation:0x0000000232e608> 的未定义方法 `updated_at',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31139184/

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