Mój przyjaciel miał ten sam problem podczas korzystania z Ruby 2.0 na Windows 7 z Postgresem. Występuje nie tylko przy próbie zniszczenia kontrolera, ale przy każdej akcji bazy danych (w tym rake db:create). Problem polega na tym, że plik pg_ext.so nie jest dołączony do ruby 2.0. Jest dołączony do wersji 1.9, ale zwykłe kopiowanie tego do wersji 2.0 nie wydaje się działać. Jednak znalazłem inną metodę uzyskania prawidłowego pg_ext.so. Nie jestem do końca pewien, dlaczego to działa, ale dla niego działa. Oto, co musisz zrobić:
- Przejdź do folderu, w którym powinien znajdować się plik 2.0/pg_ext.so (plik, którego nie można znaleźć). W Twoim przypadku C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1-x86-mingw32/lib/.
- Utwórz folder o nazwie „2.0” (bez cudzysłowów).
- W tym folderze będziesz potrzebować prawidłowego pliku pg_ext.so. Możesz to uzyskać w następujący sposób:
- Ręcznie zainstaluj pg gem ("gem zainstaluj pg" w konsoli). Instaluje to wersję gem inną niż x86-mingw32. Nie rozwiązuje problemu, ale tworzy poprawny plik pg_ext.so. Myślę, że to dlatego, że kompiluje gem pg dla twojego systemu, więc dla ruby 2.0. Następnie możesz użyć tego pliku pg_ext.so z wersją pg x86-mingw32. Będziesz potrzebować DevKit, aby skompilować i zainstalować pg (http://rubyinstaller.org/add- ons/devkit/ ).
- Przejdź do lokalizacji pg_ext.so w folderze gem pg-0.14.1. W twoim przypadku będzie to C:/Users/rrw/.pik/rubies/Ruby-200-p0/lib/ruby/gems/2.0.0/gems/pg-0.14.1/lib.
- Skopiuj plik pg_ext.so z tego folderu do nowego folderu pg-0.14.1-x86-mingw32/lib/2.0/ w kroku 2.
- Teraz ponów polecenia i sprawdź, czy wszystko działa. Jeśli tak się nie stanie, usuń plik Gemfile.lock i ponownie uruchom instalację pakietu.
- Ten sam problem z tym klejnotem może wystąpić również w przypadku innych klejnotów mingw32. Na przykład miałem ten sam problem z klejnotem bcrypt-rails. Wykonanie tych samych kroków, jak opisano powyżej, rozwiązało problem. Teraz z powodzeniem używam Ruby 2.0 w systemie Windows 7.
Ps. Jeśli masz inne problemy z uruchomieniem gem pg w 64-bitowym systemie Windows 7, spróbuj zainstalować 32-bitową wersję Rubiego x86 (RubyInstaller) i postgresql. Ponadto upewnij się, że zawierasz foldery Ruby w swojej ścieżce (jest to opcja podczas instalacji ruby 2.0 za pomocą RubyInstaller), a także foldery Postgresql lib i bin.
Powodzenia!