2016-07-07 8 views
-2

Konnten Sie mir mit einem Problem helfen? Ich muss die Datenbank hinzuzufügen:Über die Datenbank auf dem Rubin

hash = {:date_add => 1 :company => ['test', 'test2', 'test3']} 

Sie müssen pg in dieser Form hinzuzufügen:

1 test 
1 test2 
1 test3 

Wie schreibe ich dies in Ruby?

+0

So haben Sie eine Datenbank? Das sollte aus Tabellen bestehen. Daten würden zu einer oder mehreren Tabellen hinzugefügt werden. Wie lautet das Schema für Ihre Datenbank? – lurker

+0

Willkommen bei SO. Was hast du probiert? Wenn nicht, warum nicht? Ihre Frage sagt uns wenig, was uns helfen würde, detaillierte Antworten zu erstellen, und stattdessen können wir Ihnen nur eine breite Antwort geben, die Ihrer breiten Frage entspricht. Um detailliert zu sein, müßten wir ein Tutorial schreiben, das nicht zum Thema gehört. Bitte lesen Sie "[fragen]" einschließlich der verlinkten Seiten. Und anstatt pg direkt zu verwenden, würde ich einen ORM wie Sequel empfehlen. –

Antwort

0

Angenommen, Sie haben Postgres installieren und konfigurieren, mit pg gem (gem install pg) und so weiter, könnten Sie so etwas wie:

require 'pg' 

begin 
    con = PG.connect :dbname => 'testdb', :user => 'postgres' 
    con.exec "DROP TABLE IF EXISTS COMPANY" 
    con.exec "CREATE TABLE COMPANY(Id INTEGER PRIMARY KEY, 
     Name VARCHAR(20), Date_int INT)" 
    hash = {date_add: 1, company: ['test', 'test2', 'test3']} 
    hash[:company].each_with_index do |company, i| 
     con.exec "INSERT INTO COMPANY VALUES(#{i+1},#{company}, #{hash[:date_add]})" 
    end  
rescue PG::Error => e 
    puts e.message 
ensure 
    con.close if con 
end