gpt4 book ai didi

ruby-on-rails - ActiveRecord::Relation 等效于 Array#delete_at(index) 的方法?

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

ActiveRecord::Relation 等效于 Array#delete_at(index) 的方法? 也许还建议替代实现。

results = Agent.where(target_industry: target_industry)

if !target_specialty.empty?
results.map.with_index do |result, index|
unless target_specialty.include?(result.target_specialty_1) ||
target_specialty.include?(result.target_specialty_2) ||
target_specialty.include?(result.target_specialty_3)

results.delete_at(index)
end
end
end

@result = results

基本上,如果 target_specialty 过滤器是 POST,然后从 ActiveRecord::Relation results 中删除/删除所有行,其中 target_specialty_1/2/3 不包括阵列#target_specialty。最后将 @result = results 发送回 View 。

最佳答案

这仅从数据库中获取记录,其中 target_specialty_xtarget_specialty 中的任何值都不匹配:

results.where.not(
target_specialty1: target_specialty,
target_specialty2: target_specialty,
target_specialty3: target_specialty
)

这样一来,您就不需要从关系中删除任何项目,因为它们最初不是由数据库返回的。

关于ruby-on-rails - ActiveRecord::Relation 等效于 Array#delete_at(index) 的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25875546/

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