On Dec 15, 9:04 am, Grant <[email protected]> wrote:
>
> User.transaction do
>   user = User.find(1)
>   p user.products # => [#product1,#product2]
>   user.products = [#product3, #product4]
>   user.name = ""
>   user.save
> end
>
> =>
> validate error: Name can't be blank
>
> But when you run bellow.
> user = User.find(1)
> p user.products   # => [#product3,#product4]
>
> How can i resolve this problem?
> I don't need products are updated.


The save is wrapped in a save point which should be rolled back,
however when you assign to a has_many like that the change is made
straightaway to the products.
You could raise ActiveRecord::Rollback to force the outermost
transaction to be rolled back

Fred

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to