Om du lägger till ett objekt i samlingen sparas det omedelbart (såvida inte användaren är osparad). Uppmaningen att spara skapar en egen transaktion och det är det som rullas tillbaka, inte transaktionen där objektet sparas
Du kan tvinga allt till samma transaktion genom att skapa en uttryckligen.
begin
User.transaction do
@user.items << item
@user.save!
render :json => {}, :status => :ok
end
rescue ActiveRecord::RecordInvalid
render :json => {:status => :error, :errors => item.errors}, :status => :bad_request
end