Rails / Ruby / Postgres – LoadError无法加载此类文件 – pg_ext
我正在尝试使用下面的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 '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:在`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
尝试运行ruby /usr/local/rvm/gems/ruby-1.9.3-p194@railsTest/gems/pg-0.14.0/lib/pg/ext/extconf.rb,看看你得到了什么错误。 这帮助我确定在我的情况下,我的PostgreSQL客户端太旧了。 您的错误可能会有所不同,因为您似乎安装了当前版本。
我有同样的问题。 我有一个独立的ruby脚本。 它通过pg
连接到postgres
并且如果我直接从shell
运行它就可以工作。
如果我试图通过rspec运行它我得到错误cannot load such file -- pg
。
解决了 :rspec的问题是,在Gemfile
没有定义pg
gem。 将pg放入Gemfile
,通过rspec重新测试后,它就可以了。
尝试在Gemfile中添加一行:
gem "pg"
然后通过命令行运行bundler:
bundle install
Rails使用Bundler来管理您的gem和依赖项。 您可以在这里阅读更多关于Bundler背后的想法: http : //gembundler.com/v1.2/rationale.html