has_one belongs_to association autosave => true no

2019-07-06 05:12发布

问题:

I have two models

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

Pref

belongs_to :board

The pref object has defaults that are set in the database so no information needs to be used to create the object when the board is created. The ID for the board is in the pref table.

Since the :autosave=> true I thought that when I create and save a new Board object a pref object would be created and saved automatically.

This is not working this way so I must be misunderstanding.

Is there a way to autosave a pref object when a board is saved?

Thank you in advance

回答1:

autosave => true should not create an element for you. The docs say:

If true, always save the associated object or destroy it if marked for destruction, when saving the parent object. If false, never save or destroy the associated object.

You could use a callback to create the pref object when you're creating a new board.

Something along the lines of:

after_create :create_pref

def create_pref
  pref.create!
end