2014-01-25 29 views
0

我的模型美孚has_one :bar和酒吧belongs_to :foo,和Foo accepts_nested_attributes_for :barRails 3.2是否有辦法自動創建一個空的子(嵌套)記錄?

當我創建美孚(編程方式,而不是通過一種形式)的情況下,我想自動創建欄的空白子實例。

據我所知我必須明確地做到這一點:

f = Foo.new(bar_attributes: {}) 
... do stuff ... 
f.save 

是否有富的,說不僅要接受巴嵌套的屬性,而是要創造一個不管什麼型號的附加聲明?

回答

2

我只想用一個回調foo.rb

before_validation :init_foo, on: [ :create ] 

def init_foo 
    self.build_bar 
end 

這將創建一個鏈接在每次創建新的Foo對象的時間爲foo欄的新實例。

+0

Foo有*一個*欄。一對一關聯使用[特殊構建語法](http://guides.rubyonrails.org/association_basics.html#has-one-association-reference)。編輯。 – Substantial

相關問題