PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Rails 4 / postgresql:inserisci i dati su una tabella in base ai dati di un'altra tabella (after_create)

Sembra che tu abbia un errore di battitura nel codice. La connessione deve essere di ActiveRecord::Base.connection ma hai scritto DealPrize.connection.execute .

connection = ActiveRecord::Base.connection
connection.execute "sql query"

Prova a cambiare il tuo codice come

after_create :create_deal_prizes

def create_deal_prizes
  Deal.transaction do
    connection = ActiveRecord::Base.connection
    self.prizes_number.times do |i|
      connection.execute "INSERT INTO ‘deal_prizes’ (deal_id) values (self.deal.id)"
    end
  end
end