我们将数据库从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