我有一个这样的数组:
[#<Merit::Badge id: 1, name: "just-registered", level: nil, description: nil, custom_fields: nil>,
#<Merit::Badge id: 2, name: "change-username", level: nil, description: nil, custom_fields: nil>]
如何检查数组中是否存在徽章ID 2?
答案 0 :(得分:3)
如果您将该模型加载到其他对象中 - 只需array.include?(badge)
,如果没有 - array.any?{|b| b.id==2 }
(但不要硬编码ID)
答案 1 :(得分:0)
假设您的数组是merits
,解决方案应该是:
merits.index { |obj| obj.id == 2 }.nil?
上面的代码行检查数组中的id是否不存在。有关API的详细信息,请see here
答案 2 :(得分:0)
您可以尝试使用argv[argc] == NULL
模型active record
。
Merit::Badge
对于您的案例徽章ID 2
Merit::Badge.exists?(badge.id)
有关Merit::Badge.exists?(2)
的更多信息,请参阅:exists?
答案 3 :(得分:0)
found_object = merge_barge_list.find{|merit_badge| merit_badge.id == 2}
if found_object
# object found
else
# object not found
end