sql >> Databasteknik >  >> RDS >> PostgreSQL

Rails 4 / postgresql - infoga data på en tabell baserat på en annan tabelldata (after_create)

Det verkar som om du har stavfel i din kod. Anslutningen bör vara av ActiveRecord::Base.connection men du skrev DealPrize.connection.execute .

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

Prova att ändra din kod som

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


  1. Vad betyder det när jag säger att det förberedda uttalandet är förkompilerat?

  2. SQL-syntaxfel

  3. En översikt över indexändringarna i PostgreSQL 11

  4. Startar om transaktionen i MySQL efter dödläge