我想调用一个Ruby脚本(它连接到一个postgres数据库)下面的rails控制器,但它似乎有问题加载之一PG宝石文件。我已经将我的要求声明设置为要求'pg'并尝试了绝对路径(要求/usr/local/rvm/gems/[email protected]/gems/pg-0.14.0/lib/pg/
)。文件'pg_ext'实际上存在于该目录中。另外,我可以独立运行ruby脚本,没有任何问题(dbrubyscript.rb),但是当rails被添加到这个等式中时,会出现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")
.....
跟踪错误: LoadError在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
你有没有用gem安装'pg'gem的依赖关系? – AJcodez 2012-07-30 08:19:57
我不确定是否安装了依赖关系的gem。当我最初安装gem时,我使用了下面的命令:gem install pg - --with-pg-config ='/ usr/local/PostgreSQL/9.1/bin/pg_config' – user1562080 2012-07-30 14:15:34
是不是应该添加'gem' pg''到Rails中的Gemfile,并通过运行'bundle install'来安装所有的依赖关系的gem? – rekado 2012-12-05 08:18:57