我們將數據庫從sqlite3遷移到了postgreSQL。現在,在下面的行中,我們得到一個錯誤:未定義的方法`空?' for#<PG :: Result:0x007fcc82900a78>
def self.get_table_id(id)
sql = "SELECT id FROM configtables WHERE parent = 'check' AND parentid = " + id.to_s
results = connection.execute(sql)
return nil if results.empty? # here's where the error happens
return results[0][0]
end
我對Ruby和ActiveRecords以及PostgreSQL的知識知之甚少。數據庫中的值是results
a postgres-object
或什麼#<PG::Result:0x007fcc82900a78>
以及它與sqlite3
數據庫是什麼?
該函數是少數幾個使用原始sql字符串的函數之一。
嘗試'結果= connection.execute(SQL).to_a' – Aleksey
或者使用'select_all',而不是'execute'這導致一個'ActiveRecord :: Result'。然後你可以調用[這些方法](http://api.rubyonrails.org/classes/ActiveRecord/Result.html) – radubogdan
@radubogdan謝謝,這也適用! – RagnarLothbrok