2016-07-07 18 views
-2

你能幫我解決一個問題嗎?我需要添加到數據庫:關於Ruby上的數據庫

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

他們需要添加到皮克在這種形式:

1 test 
1 test2 
1 test3 

我怎樣寫這在Ruby中?

+0

所以,你有一個數據庫?這應該由表格組成。數據將被添加到一個或多個表格中。數據庫的模式是什麼? – lurker

+0

歡迎來到SO。你有什麼嘗試?如果你還沒有,那爲什麼不呢?你的問題告訴我們一點,這將幫助我們創造詳細的答案,相反,我們只能給你一個廣泛的答案,等於你廣泛的問題。要詳細說明,我們必須編寫一篇脫離主題的教程。請閱讀「[問]」,包括鏈接的頁面。而不是直接使用pg,我建議使用ORM,比如Sequel。 –

回答

0

假設你有Postgres的安裝和配置,與PG寶石(寶石安裝PG)等,你可以這樣做:

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