比较两个数组的相同值和不匹配值

Comparing two arrays for the same values and non-matching values

我正在尝试比较两个数组,并在是否存在匹配值的情况下显示不同的结果。

@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

目前我只得到 "accessible" 输出。我如何比较每一个并得到真实和错误的案例?

您正在迭代这两个数组的交集。听起来您想检查该交叉点中是否有任何元素。你会想要这样的东西:

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