sql >> Base de Datos >  >> RDS >> PostgreSQL

Rails 4 / postgresql:inserte datos en una tabla en función de los datos de otra tabla (after_create)

Parece que tienes un error tipográfico en tu código. La conexión debe ser de ActiveRecord::Base.connection pero escribiste DealPrize.connection.execute .

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

Intenta cambiar tu 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