PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Rails 4 / postgresql - insere dados em uma tabela com base em dados de outra tabela (after_create)


Parece que você tem um erro de digitação no seu código. A conexão deve ser de ActiveRecord::Base.connection mas você escreveu DealPrize.connection.execute .
connection = ActiveRecord::Base.connection
connection.execute "sql query"

Tente alterar seu código como
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