• C
    Fix #8856 Ensure has_one association=(associate) triggers save. · ebd7cc6f
    Chris Thompson 提交于
    activerecord/lib/active_record/associations.rb states:
    
        # [association=(associate)]
        #   Assigns the associate object, extracts the primary key, sets it as the foreign key,
        #   and saves the associate object.
    
    Since commit 42dd5d9f to fix #7191, this
    is no longer the case if the associate has changed, but is the same
    object. For example:
    
        # Pirate has_one :ship
        pirate = Pirate.create!(catchphrase: "A Pirate")
        ship = pirate.build_ship(name: 'old name')
        ship.save!
    
        ship.name = 'new name'
        pirate.ship = ship
    
    That last line should trigger a save. Although we are not changing the
    association, the associate (ship) has changed.
    ebd7cc6f
has_one_association.rb 3.0 KB