Rails/Ruby/Postgres - LoadError无法加载此类文件 - pg_ext

use*_*080 9 ruby ruby-on-rails pg

我试图使用下面的rails控制器调用一个Ruby脚本(连接到postgres数据库),但是它似乎在加载一个PG gem文件时遇到问题.我已将require语句设置为要求'pg'并尝试绝对路径(require /usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/).文件'pg_ext'实际上存在于目录中.另外,我可以独立运行ruby脚本而没有任何问题(dbrubyscript.rb),但是当轨道被添加到这个等式中时,它会出现cannot load such file -- 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
Run Code Online (Sandbox Code Playgroud)

.rb文件(dbrubyscript.rb)具有以下内容:

require 'rubygems'
require 'pg'

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

跟踪错误: TestdlController中的LoadError#runmyscript

无法加载此类文件 - pg_ext

Rails.root:/ usr/local/rvm/my_app应用程序跟踪| 框架跟踪| 完整跟踪app/controllers/Testdl_controller.rb:3:在`runmyscript'中

加载以下文件时发生此错误:
/usr/local/rvm/my_app/ruby_scripts/reports/dbrubyscript.rb
/usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14. 0/lib/pg/
pg_ext

reg*_*his 0

尝试在 Gemfile 中添加一行:

gem "pg"
Run Code Online (Sandbox Code Playgroud)

然后通过命令行运行bundler:

bundle install
Run Code Online (Sandbox Code Playgroud)

Rails 使用 Bundler 来管理您的 gem 和依赖项。您可以在此处详细了解 Bundler 背后的想法:http ://gembundler.com/v1.2/rationale.html