PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Rails 4 / postgresql - Einfügen von Daten in eine Tabelle basierend auf anderen Tabellendaten (after_create)

Anscheinend hast du einen Tippfehler in deinem Code. Die Verbindung sollte ActiveRecord::Base.connection sein aber Sie haben DealPrize.connection.execute geschrieben .

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

Versuchen Sie, Ihren Code wie

zu ändern
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