".build"で作成された "has_many、:through =>"の結合モデルにアクセスする方法はありますか?
私はここに実際のコードを持っていないことを申し訳ありませんが、私はあなたが私が欲しいものを理解してほしいと、b及びcは、W/belongs_toの(正しく定義にhas_many、has_manyのスルーされている).buildのjoin-modelへのアクセスhas_many、:〜
a:
has_many :bs
has_many :cs, :through => :bs
今すぐ)
:C-インスタンス「を作成」とも参加)私は、トランザクション内(
var = @a.cs.build
をやろうとしているが、私はそれはここでは関係ないと思うのコントローラでは、 b。しかし、私はいくつかの属性を渡したいので、自動的に作成された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!
またはsthですか?私はそれが非常に良いスタイルだとは思わないし、何らかの理由でラッピング取引を「中断」しない。
私が望むものを得ることを望む。
EDIT
Umh、すべての最初:あなたの答えのおかげで、私はまだこだわっています。私は、より正確にしようとするでしょう :
@a = A.new
@a.name = "foo"
varc = @a.cs.build
varc.name = "bar"
@a.save!
つもり私がBの属性を設定することができますどのようにA、BおよびCでの1つのインスタンスを与えることだと?
sth。 like:
varb = join_model_of(@a, varc)
varb.name = "foobar"
@ a.save!
TYIA!