2012-07-30 18 views
7

Sto provando a chiamare uno script Ruby (che si connette a un db postgres) utilizzando il controller delle guide di seguito, tuttavia sembra che stia riscontrando problemi durante il caricamento di uno dei File gemma PG. Ho impostato la mia richiesta per richiedere 'pg' e ho provato anche il percorso assoluto (richiede /usr/local/rvm/gems/[email protected]/gems/pg-0.14.0/lib/pg/). Il file 'pg_ext' è infatti presente nella directory. Inoltre, posso eseguire lo standalone script Ruby senza problemi (dbrubyscript.rb), ma quando le rotaie si aggiunge a questa equazione craps fuori con un errore cannot load such file -- pg_ext.Rails/Ruby/Postgres - LoadError non può caricare tale file - pg_ext

Qualsiasi direzione qui sarebbe molto apprezzato come io non sono stato in grado di trovare qualsiasi cosa online che consente di risolvere questo problema

Rails regolatore:

class TestdlController < ApplicationController 
def runmyscript 
    load "/usr/local/rvm/my_app/ruby_scripts/reports/dbrubyscript.rb" 
    send_file '/usr/local/rvm/tmp/failedtests.csv', :type => 'text/csv', :disposition => 'inline' 
    flash[:notice] = "Reports are being processed..." 
end 
end 

file di .RB (dbrubyscript.rb) ha la seguente:

require 'rubygems' 
require 'pg' 

connects to (production) database 
@conn = PGconn.connect("zzzzz.test.prod", 5432,"","","yyyyy_prod" ,"postgres", "xxxxxx") 
..... 

Trace Errore: LoadError in TestdlController # runmyscript

cannot load such file -- pg_ext

Rails.root: /usr/local/rvm/my_app Application Trace | Framework Trace | Full Trace app/controllers/Testdl_controller.rb:3:in `runmyscript'

This error occurred while loading the following files:
/usr/local/rvm/my_app/ruby_scripts/reports/dbrubyscript.rb
/usr/local/rvm/gems/[email protected]/gems/pg-0.14.0/lib/pg/
pg_ext

+0

hanno si gemma installato la gemma 'pg' con le dipendenze? – AJcodez

+0

Non sono sicuro di aver installato la gemma con le dipendenze. Quando ho installato inizialmente la gemma ho usato il seguente comando: gem install pg - with-PG-config = '/ usr/local/PostgreSQL/9,1/bin/pg_config' – user1562080

+2

Non dovresti aggiungere 'gioiello ' pg'' al Gemfile in Rails e installa tutte le gemme con le dipendenze eseguendo 'bundle install'? – rekado

risposta

-1

Prova ad aggiungere una riga al vostro Gemfile:

gem "pg" 

Poi gestita bundler tramite la riga di comando:

bundle install 

Rails usi Bundler per gestire le tue gemme e le tue dipendenze. Puoi leggere un po 'di più l'idea alla base di Bundler: http://gembundler.com/v1.2/rationale.html

0

Prova a eseguire ruby ​​/usr/local/rvm/gems/[email protected]/gems/pg-0.14.0/lib/ pg/ext/extconf.rb e vedere quali errori si ottengono. Questo mi ha aiutato a determinare che nel mio caso il mio client PostgreSQL era troppo vecchio. Il tuo errore potrebbe essere diverso in quanto sembra avere una versione ish corrente installata.

0

Ho avuto lo stesso problema. Ho uno script rubino stand alone. Si collega via pg-postgres e ha lavorato, se ho fatto funzionare direttamente dal shell.

Se ho provato a farlo funzionare tramite rspec ottengo l'errore cannot load such file -- pg.

Risolto: Il problema per RSpec è stato, il pg gioiello non è stato definito nel Gemfile. Dopo aver inserito pg in Gemfile e retestet tramite rspec, ha funzionato.

Problemi correlati