【发布时间】:2010-10-01 20:04:31
【问题描述】:
为
class A < ActiveRecord::Base
has_many :bs
has_many :cs, :through => :bs
end
class B < ActiveRecord::Base
belongs_to :a
belongs_to :c
end
class C < ActiveRecord::Base
has_many :bs
end
如果我打开一个 Rails 控制台,然后做
a = A.new
b = a.bs.build
b.c = C.new
然后我得到
a.cs => []
但是
a.bs[0].c => c
如果 a 被保存,那么一切正常。这是预期的吗?当模型仅存在于内存中时,为什么通过关联不起作用?谢谢
【问题讨论】:
-
也许,当对象被保存(或加载)而不是创建时,关联是“建立的”。您是否必须使用未保存的实例进行操作?
-
不是,但我更喜欢在运行测试时占用尽可能小的内存,如果它们可以在内存中运行,我会节省很多时间。
标签: ruby-on-rails activerecord associations