PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Rails 4 / postgresql - insérer des données sur une table en fonction des données d'une autre table (after_create)

Il semble que vous ayez une faute de frappe dans votre code. La connexion doit être ActiveRecord::Base.connection mais vous avez écrit DealPrize.connection.execute .

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

Essayez de changer votre code comme

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