【发布时间】:2012-07-27 19:52:01
【问题描述】:
我正在尝试使用下面的 rails 控制器调用 Ruby 脚本(连接到 postgres 数据库),但它似乎在加载其中一个 PG gem 文件时遇到问题。我已将我的 require 语句设置为 require 'pg' 并尝试了绝对路径(需要 /usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/)。文件“pg_ext”实际上存在于目录中。此外,我可以毫无问题地独立运行 ruby 脚本 (dbrubyscript.rb),但是当将 rails 添加到此等式时,它会出现 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
.rb 文件 (dbrubyscript.rb) 有以下内容:
require 'rubygems'
require 'pg'
connects to (production) database
@conn = PGconn.connect("zzzzz.test.prod", 5432,"","","yyyyy_prod" ,"postgres", "xxxxxx")
.....
跟踪错误: TestdlController 中的 LoadError#runmyscript
无法加载此类文件 -- pg_ext
Rails.root:/usr/local/rvm/my_app 应用程序跟踪 |框架跟踪 |完整跟踪 app/controllers/Testdl_controller.rb:3:in `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
【问题讨论】:
-
你 gem 安装了带有依赖关系的 'pg' gem 吗?
-
我不确定我是否安装了带有依赖项的 gem。当我最初安装 gem 时,我使用了以下命令: gem install pg -- --with-pg-config='/usr/local/PostgreSQL/9.1/bin/pg_config'
-
难道你不应该将
gem 'pg'添加到Rails 中的Gemfile 并通过运行bundle install来安装所有具有依赖关系的gem?
标签: ruby-on-rails ruby pg