有什么方法可以访问在“.build”上创建的“has_many,:through =>”关联的连接模型?
我很抱歉,我没有在这里实际的代码,但我希望你明白我想要什么;)使用has_many访问.build上的连接模型,通过
a:
has_many :bs
has_many :cs, :through => :bs
B和C正确定义(W/belongs_to的,的has_many,的has_many通)
现在:在控制器我试图做一个
var = @a.cs.build
(内交易,但我不认为这是与此有关),其“创造”一个C实例,也是加盟湾但是我怎样才能访问自动创建的b,因为我想传递一些属性?那是不可能的,或者我必须解决与
@a.create_c
# or
varb = B.new
varb.someattr1 = "foo" # <- this is what I want w/ .build
varb.someattr2 = "bar"
varb.a = @a
varc = C.new
varc.someattr3 = "asdf"
varb.c = varc
# ... and some .save!
或某事像吗?我不认为这是很好的风格,也不会因为某种原因'打破'包装交易
我真希望你能得到我想要的。
编辑
UMH,首先:您的回答,谢谢,但我仍然坚持。 我会尝试更精确:
@a = A.new
@a.name = "foo"
varc = @a.cs.build
varc.name = "bar"
@a.save!
这是要给我A,B和C.我如何设置为B属性的一个实例?
某事如:
varb = join_model_of(@a, varc)
varb.name = "foobar"
之前的@ a.save!
TYIA!