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.

