3

私は2つのモデルを持っています

Board
has_one    :pref, :autosave => true,  :dependent => :destroy

Pref

belongs_to :board

prefオブジェクトにはデータベースに設定されているデフォルトがあるため、ボードの作成時にオブジェクトを作成するために情報を使用する必要はありません。ボードのIDは設定テーブルにあります。

:autosave => trueなので、新しいBoardオブジェクトを作成して保存すると、prefオブジェクトが自動的に作成されて保存されると思いました。

これはこのように機能していないので、私は誤解しているに違いありません。

ボードの保存時に設定オブジェクトを自動保存する方法はありますか?

前もって感謝します

4

1 に答える 1

3

autosave => trueあなたのために要素を作成するべきではありません。ドキュメントは言う:

trueの場合、親オブジェクトを保存するときに、関連付けられたオブジェクトを常に保存するか、破棄のマークが付いている場合は破棄します。falseの場合、関連するオブジェクトを保存または破棄しないでください。

新しいを作成するときに、コールバックprefを使用してオブジェクトを作成できますboard

次のようなもの:

after_create :create_pref

def create_pref
  pref.create!
end
于 2011-03-23T12:36:09.093 に答える