我正在尝试比较两个数组,如果有匹配值则显示不同的结果。
@codes.each do |code|
accessible_codes = code.roles.pluck(:role_id)
current_users_roles = current_user.roles.pluck(:role_id)
(accessible_codes & current_users_roles).each {|i|
if i
puts "accessible"
else
puts "not accessible"
end
}
end
目前我只能获得"可访问"输出。如何比较每个并获得真假案例?
答案 0 :(得分:2)
您正在迭代这两个数组的交集。听起来你想要检查那个交叉点是否有任何元素。你想要这样的东西:
current_users_roles = current_user.roles.pluck(:role_id)
@codes.each do |code|
accessible_codes = code.roles.pluck(:role_id)
if (accessible_codes & current_users_roles).empty?
puts "not accessible"
else
puts "accessible"
end
end