私のネットワーク上で、イベント/社会に招待されていない友人のリストを見つける方法は、レールの方法set
を使ってどのように見つけるのか非常に混乱しています。私は今見つけるしようとしています、私はすべての私の友人(合計で2人の友人) ruby classの使い方 - Rails 5
friends
は私がsocial_invited_friends
「
friends
とsocial_invited_friends
」を比較することにより、招かれざる友人social_univited_friends
のリストは、一つは親切にこれを行う方法を私に助言するだろうか?
これは、端末
2.3.0 :207 > ap friends = Set.new((inviter.friends).to_a)
[
[0] #<User:0x007fa6f882adb0> {
:id => 2,
:email => "[email protected]"
},
[1] #<User:0x007fa6f7191db0> {
:id => 4,
:email => "[email protected]"
}
]
2.3.0 :213 > ap social_invited_friends = Set.new(Invite.where(user: inviter, invitee: nil, social: social).to_a.map(&:users))
Invite Load (0.2ms) SELECT "invites".* FROM "invites" WHERE "invites"."user_id" = 1 AND "invites"."invitee_id" IS NULL AND "invites"."social_id" = 6
User Load (0.1ms) SELECT "users".* FROM "users" INNER JOIN "invites_users" ON "users"."id" = "invites_users"."user_id" WHERE "invites_users"."invite_id" = ? [["invite_id", 30]]
User Load (0.3ms) SELECT "users".* FROM "users" INNER JOIN "invites_users" ON "users"."id" = "invites_users"."user_id" WHERE "invites_users"."invite_id" = ? [["invite_id", 31]]
[
[0] [
[0] #<User:0x007fa6f7191f90> {
:id => 2,
:email => "[email protected]"
},
[1] #<User:0x007fa6f7191db0> {
:id => 4,
:email => "[email protected]"
}
]
]
=> nil
2.3.0 :214 >
私は
social_univited_friends = friends.difference(social_invited_friends)
の下にしようとしたとき、私は、端末
2.3.0 :207 > ap social_univited_friends = friends.difference(social_invited_friends)
[
[0] #<User:0x007fa6f882adb0> {
:id => 2,
:email => "[email protected]"
},
[1] #<User:0x007fa6f7191db0> {
:id => 4,
:email => "[email protected]"
}
]
に以下の結果を得たが、私は持っていなければならないと信じています私はすべての私の友人を偶数に招待しているので、何も返されませんap friends
で
[
[0] [
[0] #<User ...
[1] #<User ...
]
]
、その後:ap social_invited_friends
で慎重
2.3.0 :207 > ap social_univited_friends = friends.difference(social_invited_friends)
[ ]