下記のrailsコントローラを使用してRubyスクリプト(postgresデータベースに接続しています)を呼び出そうとしていますが、 PGのgemファイル私は 'pg'を要求するためにrequire文を設定し、絶対パスも試しました(/usr/local/rvm/gems/[email protected]/gems/pg-0.14.0/lib/pg/
が必要です)。実際には、ファイル 'pg_ext'がディレクトリに存在します。さらに、私はrubyスクリプトを何の問題もなく(dbrubyscript.rb)スタンドアロンで走らせることができますが、この方程式にレールを追加すると、cannot load such file -- pg_ext
エラーが出ます。Rails/Ruby/Postgres - LoadErrorはこのようなファイルをロードできません - pg_ext
私はオンライン何かを見つけることができていないとして、ここで任意の方向をはるかに高く評価されるだろう、この問題を修正
Railsのコントローラ:
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
.RBファイル(dbrubyscript.rb)次のとおりです。
require 'rubygems'
require 'pg'
connects to (production) database
@conn = PGconn.connect("zzzzz.test.prod", 5432,"","","yyyyy_prod" ,"postgres", "xxxxxx")
.....
トレースエラー:
bundle install
Railsの用途:次に、コマンドラインを介してバンドラを実行
gem "pg"
: とLoadErrorあなたのGemfileに行を追加してみてください
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
宝石に依存性のある「pg」宝石がインストールされていますか? – AJcodez
依存関係のあるgemをインストールしたかどうかはわかりません。 gem install pg --with-pg-config = '/ usr/local/PostgreSQL/9.1/bin/pg_config' – user1562080
gemをインストールする前に、 pg''をRailsのGemfileに追加し、 'bundle install'を実行して依存関係のあるすべてのgemをインストールしますか? – rekado