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

时间:2015-01-06 18:33:28

标签: ruby-on-rails arrays comparison

我正在尝试比较两个数组,如果有匹配值则显示不同的结果。

@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

目前我只能获得"可访问"输出。如何比较每个并获得真假案例?

1 个答案:

答案 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