我有一個has_many通過令人沮喪的問題:即通過模型,直到保存創建的事實。不幸的是,我需要在保存父項之前在這些模型上設置數據。Ruby on Rails:has_many通過挫折
這裏的鬆設置:
class Wtf < ActiveRecord::Base
belongs_to :foo
belongs_to :bar
end
class Bar < ActiveRecord::Base
has_many :wtfs
has_many :foos, :through => :wtfs
end
class Foo < ActiveRecord::Base
has_many :wtfs
has_many :bars, :through => :wtfs
def after_initialize
Bar.all.each do |bar|
bars << bar
end
end
end
一切都只是我需要訪問 「跆拳道」 的優良之前保存:
F = Foo.new = >#
f.bars => [酒吧列表]
這裏
f.wtfs => []
f.save空單! =>真
現在我得到的東西
f.wtfs => [東西名單]
我還跟那麼遠,明確地創建這樣做的wtfs:
def after_initialize
Bar.all.each do |bar|
wtfs << Wtf.new(:foo => self, :bar => bar, :data_i_need_to_set => 10)
end
end
這會導致f.wtfs被填充,但不是條形。當我保存並檢索時,我獲得了預期wtfs的兩倍。
任何人有任何想法?
在Foo保存並給出ID之前,Wtf應該如何保存並與Foo關聯? – jdl 2010-05-13 20:19:21