Rails不明白。包括?行为

时间:2017-09-26 18:52:47

标签: ruby-on-rails

characters中有following的集合。每个character都有一个独特的句柄。我已检查过数据库,以确保只有一个character具有句柄barry1。我试图这样做:

following.include?(other_character)   # false

它返回false,但我确定barry1位于following。它认为id是不同的,但只有一个barry1。发生了什么事?

character.rb

has_many :following, through: :active_follow_relationships,  source: :followed

puts following.first.handle    # barry1
puts other_character.handle    # barry1

puts following.first     # #<Character:0x007fef15231490>
puts other_character     # #<Character:0x007fef09bb4d58>

puts following.first.id    # 21
puts other_character.id    # 8

1 个答案:

答案 0 :(得分:0)

实际上至少有两个不同的characters具有值为handle的{​​{1}}属性。 (参见ids 21和8)。它们都存在于记忆中的不同位置,因此具有两个不同的ID。

但是,如果您要检查集合barry1是否包含至少一个following属性等于characters handle的{​​{1}},这应该有效:

barry1