Postgre DBI を Ruby で動作させようとしていますが、信頼できる答えはまだ見つかりませんが、ここでその助けを見つけたいと思っています...
エラーを生成するコードは次のとおりです。
#!/usr/bin/ruby
require 'pg'
$maxwidth=12
conn = PGconn.connect("localhost", 5432, '', '', "testdb", "caseyr", "genesrule")
###### DROP ANY EXISTING rocks TABLE ######
begin
res = conn.exec("SELECT id FROM rocks;")
rescue # rocks table doesn't exist -- this is legitimate
else # rocks table exists, so delete it
puts 'DELETING rocks...'
res = conn.exec("DROP TABLE rocks;")
end
###### CREATE AND POPULATE rocks TABLE ######
begin
res = conn.exec("CREATE TABLE rocks (id serial, rockname char(20));")
res = conn.exec("INSERT INTO ROCKS (rockname) values ('Diamond');")
res = conn.exec("INSERT INTO ROCKS (rockname) values ('Ruby');")
res = conn.exec("INSERT INTO ROCKS (rockname) values ('Emerald');")
rescue Pgconn::PGError => e
puts "Error creating and filling rocks table."
puts "Error code: #{e.err}"
puts "Error message: #{e.errstr}"
conn.close() if conn
end
エラーメッセージは次のとおりです。
ruby testRocks.rb
DELETING rocks...
NOTICE: CREATE TABLE will create implicit sequence "rocks_id_seq" for serial column "rocks.id"
testRocks.rb:35: uninitialized constant Pgconn (NameError)
使用する正しいクラス名がわかりません。Pgconn
推測でした。
しかし、さらにテストすると、この単純なテストも失敗したことがわかります。
#!/usr/bin/ruby
require 'postgres'
これは失敗します:
ruby basictest.rb
basictest.rb:2:in `require': no such file to load -- postgres (LoadError)
from basictest.rb:2
これで、postgres gem が正常にインストールされたと思います。
gem list | grep post
postgres (0.7.9.2008.01.28)
postgres-pr (0.6.3)
だから、私は途方に暮れています
- 適切な Postgres ドライバーと DBI がインストールされていますか?
- 上記の最初のテスト プログラムが失敗するのはなぜですか?