我試圖通過使用ActiveRecord一份準備好的聲明中插入值與ActiveRecord的語句。然而,每次我嘗試:準備和執行使用PostgreSQL
conn = ActiveRecord::Base.connection
conn.prepare "SELECT * from sampletable where id = $1"
conn.execute 3
第二條語句後,我得到:
NoMethodError: undefined method `prepare' for
#<ActiveRecord::ConnectionAdapters::PostgreSQLAdapter:0x000001027442c8>
我該怎麼辦?我運行的Rails 3.2.1和Ruby 1.9.2
UPDATE:
我解決了這個問題。感謝您的迴應,但它不適用於PostgreSQL。做到這一點的方法是:
stmt = "SELECT * from sampletable where id = $1 and name = $2"
values = [ { value: 1}, { value: "henry" } ]
其中值是散列的陣列,每個指定一個值,$ 1綁定到第0散列,$ 2被綁定到第二散列數組中等等
con = PG::Connection.new(:dbname => "development_DB")
con.prepare("insert", stmt)
con.exec_prepared("insert", values)
con.close()
而這一點,女士們,先生們,作品!
如果你是遊戲回顧一下解決方案作爲自己的答案,我會刪除我的答案的答案。 (請參閱http://meta.stackexchange.com/questions/90263/unanswered-question-answered-in-comments,瞭解爲什麼這會有所幫助。)謝謝! – DreadPirateShawn