假設兩種型號:rails 3.1.3 has_many/belongs_to燈具不相等?
class Foo < ActiveRecord::Base
has_many :bars
end
class Bar < ActiveRecord::Base
belongs_to :foo
end
及其配套的燈具:
foos.yml:
one:
...
bars.yml:
one:
foo: one
two:
foo: one
然後測試用例:
test "fixtures equal?" do
foo = foos(:one)
assert_equal foo, foo.bars.first.foo
end
這個測試在單元測試框架和功能測試框架中都失敗了。我得到的失敗如下:
1) Failure:
test_fixtures_equal?(FooUnitTest) [test/unit/foo_test.rb:53]:
<#<Foo id: 980190962, created_at: "2012-05-18 21:47:27", updated_at: "2012-05-18 21:47:27">>
with id <70029939109360> expected to be equal? to
<#<Foo id: 980190962, created_at: "2012-05-18 21:47:27", updated_at: "2012-05-18 21:47:27">>
with id <70029939309000>.
我在做什麼錯?我如何獲得指向相同對象的向前和向後指針?這對我來說尤其重要,因爲我試圖同時修改兩個對象並驗證更改,但bar.foo鏈接沒有看到「父」foo對象的更改,所以我的驗證在測試期間失敗。
唉,經過幾個小時的搜索後,我嘗試了很多不同的方法,我一直無法弄清楚這一點。
謝謝!
謝謝。這似乎與我想要的接近,除了一個細節: 有以下限制:inverse_of支持: *對於belongs_to關聯has_many反向關聯被忽略。 –