我有兩個類用的has_many和belongs_to的關聯:爲什麼通過belongs_to關聯的對象不等於自己?
class Employee < ActiveRecord::Base
has_many :contracts
end
class Contract < ActiveRecord::Base
belongs_to :employee
end
我期望由合同類的#employee方法返回的僱員將等於本身,這意味着下面的單元測試將通過。
class EmployeeTest < ActiveSupport::TestCase
test "an object retrieved via a belongs_to association should be equal to itself" do
e = Employee.new
e.contracts << Contract.new
assert e.save
a = e.contracts[0].employee
assert a.equal? a
end
end
但是,它失敗。我不明白。這是ActiveRecord中的錯誤嗎?
感謝您的幫助。
很抱歉,但你的答案錯過我想拍點。我不想實施平等測試來檢查兩個對象是否相同。 我只想了解爲什麼通過belongs_to關聯檢索的對象不等於自身。這怎麼可能?我期望對於任何對象x,x.equal?(x)都是true,但顯然對於通過belongs_to關聯檢索的對象,x.equal?(x)爲false。 – 2009-09-24 06:43:36