PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Railsy nie wycofują transakcji po nieudanym save()

Dodanie elementu do kolekcji zapisuje go natychmiast (chyba że użytkownik jest niezapisany). Wezwanie do zapisania tworzy własną transakcję i to jest wycofywane, a nie transakcja, w której element jest zapisany

Możesz zmusić wszystko do tej samej transakcji, tworząc ją jawnie.

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wkładka wielorzędowa z obietnicą pg

  2. Wyświetlanie obrazu z bazy PostgreSQL, bajta

  3. właściwa adnotacja hibernacji dla byte[]

  4. Wstawiaj dane i ustawiaj klucze obce za pomocą Postgres

  5. Wybór odpowiedniego indeksu dla zapytania PostgreSQL