私の友人は、Postgresを搭載したWindows7でRuby2.0を使用したときに同じ問題を抱えていました。これは、コントローラーを破棄しようとしたときだけでなく、すべてのデータベースアクション(rake db:createを含む)に対して発生します。問題は、pg_ext.soファイルがruby2.0に含まれていないことです。 1.9に含まれていますが、これを2.0にコピーするだけではうまくいかないようです。しかし、正しいpg_ext.soを取得する別の方法を見つけました。なぜこれが機能するのか正確にはわかりませんが、彼にとっては機能します。これがあなたがする必要があることです:
- 2.0 / pg_ext.so(見つからなかったファイル)が配置されているフォルダーに移動します。あなたの場合、C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/。
- ここに「2.0」(引用符なし)というフォルダを作成します。
- このフォルダーには、正しいpg_ext.soファイルが必要です。これは次の方法で取得できます。
- pg gemを手動でインストールします(コンソールでは「geminstallpg」)。これにより、x86-mingw32以外のバージョンのgemがインストールされます。問題は修正されませんが、正しいpg_ext.soが作成されます。これは、システム用にpg gemをコンパイルするためだと思います。つまり、ruby2.0の場合です。その後、このpg_ext.soファイルをpgx86-mingw32バージョンで使用できます。 pgをコンパイルしてインストールするにはDevKitが必要です( http://rubyinstaller.org/add- ons / devkit / 。
- pg-0.14.1gemフォルダー内のpg_ext.soの場所に移動します。あなたの場合、これはC:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/libになります。
- ファイルpg_ext.soをこのフォルダーから手順2で新しくpg-0.14.1-x86-mingw32/lib /2.0/フォルダーにコピーします。
- コマンドを再試行して、すべてが機能するかどうかを確認します。そうでない場合は、Gemfile.lockを削除して、バンドルインストールを再実行します。
- このgemで同じ問題が、他のmingw32gemでも発生する可能性があります。たとえば、bcrypt-railsgemでも同じ問題が発生しました。上記と同じ手順に従うと、問題が修正されました。現在、Windows7でRuby2.0を正常に実行しています。
追伸Windows 764ビットでpggemを実行する際に他に問題がある場合は、32ビットx86バージョンのRuby(RubyInstaller)とpostgresqlをインストールしてみてください。さらに、パスにRubyフォルダー(これはRubyInstallerを使用してruby 2.0をインストールする際のオプションです)とPostgresqllibおよびbinフォルダーを含めるようにしてください。
頑張ってください!