title: Behaviour of assign_attributes with nested forms
body: <p>assign_attributes doesn't seem to recognise when I delete nested objects.</p>
  
  <p>I have a model called Order:</p>
  
  <pre><code>class Order &lt; ActiveRecord::Base
  
      has_many :deliveries, :dependent =&gt; :destroy             
      accepts_nested_attributes_for :deliveries, :allow_destroy =&gt; true
  
  end
  </code></pre>
  
  <p>Say I create an order with two deliveries. Then I open the 'edit order' form (which is a nested form where you can see the two nested deliveries), and then delete one of the deliveries, i.e. so that the '_destroy' attribute is set to true.</p>
  
  <p>Then, if I do:</p>
  
  <pre><code>@order = Order.find_by_id(params[:id])
  @order.assign_attributes(order_params)
  logger.debug "@order.deliveries: #{@order.deliveries.inspect}"
  </code></pre>
  
  <p>I can see that both of the deliveries are still there nested under the order.</p>
  
  <p>However, if I do</p>
  
  <pre><code>@order = Order.find_by_id(params[:id])
  @order.update_attributes!(order_params)
  logger.debug "@order.deliveries: #{@order.deliveries.inspect}"
  </code></pre>
  
  <p>One of the deliveries is deleted as expected.</p>
  
  <p>Is this expected behaviour by assign_attributes? Ideally I'd like it to remove the delivery that has been deleted, but not save the resulting objects/links to the database.</p>