基本上我有这个:
master_actors = [#<Actor2role actorId: 13176, dogTag: 45917, roleId: 1, position: 3>, #<Actor2role actorId: 65471, dogTag: 45917, roleId: 291075, position: 1>]
slave_actors = [#<Actor2role actorId: 11123, dogTag: 5384, roleId: 44, position: 5>, #<Actor2role actorId: 65471, dogTag: 5384, roleId: 291075, position: 0>, #<Actor2role actorId: 66652, dogTag: 5384, roleId: 291073, position: 2>]
我需要比较每个记录的内容,如果master_actors中没有slave_actors中的条目,我需要插入它们。
我无法弄清楚如何比较这两个activeRecord关系对象的内容。像.include?
这样的常规数组方法似乎不起作用。 master_actors.attributes == slave_actors.attributes
也没有,因为我收到一条错误,指出对于activeRecord关系,属性方法不存在。
基本上我真的很难过。
任何帮助将不胜感激。
答案 0 :(得分:1)
您是否尝试检查交叉点(ary1 & ary2
)是否为空?
编辑:如下面的评论中所述,由于master_actors
中的元素可能不在slave_actors
中,因此差异(ary1 - ary2
)是正确答案
答案 1 :(得分:0)
怎么样master_actors.to_a.should eq(slave_actors.to_a) - 为我工作