【问题标题】:LoadError cannot find dm-postgres-adapter when using Heroku Run Console使用 Heroku 运行控制台时 LoadError 找不到 dm-postgres-adapter
【发布时间】:2019-05-22 12:10:21
【问题描述】:

我在 WSL 上,在 Sinatra Web 应用程序培训上研究 Ruby,当我在 heroku 运行控制台命令上需要 './main' 时,我收到 LoadError 并且它不能需要 'dm-postgres-adapter。

我一直在学习使用 WSL 的教程,我安装了 Ruby 及其依赖项,到目前为止,我安装的所有 gem 都是成功的。但是当我推送到 heroku 并运行“heroku 运行控制台”命令并输入“require "./main"' 时,我得到一个 LoadError,告诉我......

joelg@SurfacePro3:~/RubyProgs/SinatraExcercise$ heroku 运行控制台
在⬢ sinatra-project-jg 上运行控制台... up, run.2550(免费)
irb(main):001:0> 需要 './main'
警告:如果您计划将任何 ActiveSupport 的核心扩展加载到 Hash,请 确保在加载 Sinatra::Application 或 Sinatra::Base 之前 * 这样做。如果不, 您可以忽略此警告。 LoadError: 无法加载此类文件 -- dm-postgres-adapter 来自 /app/vendor/bundle/ruby/2.4.0/gems/dm-core-1.2.1/lib/dm-core/adapters.rb:163:in `require' 来自 /app/vendor/bundle/ruby/2.4.0/gems/dm-core-1.2.1/lib/dm-core/adapters.rb:163:in `load_adapter' 来自 /app/vendor/bundle/ruby/2.4.0/gems/dm-core-1.2.1/lib/dm-core/adapters.rb:133:in `adapter_class' 来自 /app/vendor/bundle/ruby/2.4.0/gems/dm-core-1.2.1/lib/dm-core/adapters.rb:13:in `new' 来自 /app/vendor/bundle/ruby/2.4.0/gems/dm-core-1.2.1/lib/dm-core.rb:230:in `setup' 来自 /app/main.rb:21:in `block in ' 来自 /app/vendor/bundle/ruby/2.4.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1426:in `configure' 来自 /app/vendor/bundle/ruby/2.4.0/gems/sinatra-2.0.4/lib/sinatra/base.rb:1925:in `block (2 levels) in delegate' 来自 /app/main.rb:20:in `' 来自 (irb):1:in `require' 来自 (irb):1 来自 /app/bin/irb:15:in `' irb(主):002:0>

当我运行它时,它说不需要 dm-postgres-adapter,但我已将它加载到我的 Gemfile 中。

【问题讨论】:

  • require 中存在哪些 main.rb 行?你在学习什么教程?
  • 需要“sinatra”如果开发需要“sinatra/contrib”?需要 'sinatra/flash' 需要 "pony" 需要 "slim" 需要 "sass" 需要 "./song" 需要'./sinatra/auth' 需要'v8' 需要'coffee-script' 我正在关注 jumpstart sinatra 书.
  • 这很难阅读,因此您应该将该信息移至您的问题中。如果添加 require 'dm-postgres-adapter' 会发生什么?
  • 同样的错误,只是这次错误在require部分。
  • 不确定,我建议您使用细齿梳子仔细阅读您使用的指南,并确保您完全按照顺序执行每一步。

标签: ruby postgresql rubygems sinatra windows-subsystem-for-linux


【解决方案1】:

我遇到了同样的错误。当你推送到 heroku 时,不要忽略 Heroku 的警告。

如果您使用的是 Git(您可能是),您需要先通过命令行删除 .bundle/ 文件夹:

git rm --cached -r .bundle/

然后您需要在主目录中添加一个 .gitignore 文件,文件正文中包含“.bundle/”

将所有内容提交到 git 和/或 github。 推送到 Heroku。 (不再对 .bundle/ 文件夹发出讨厌的警告)

然后运行您的 heroku 运行控制台命令并再次学习 Jumpstart 教程。

【讨论】:

  • T_T .....谢谢你,我已经为此苦苦挣扎了将近一年,它奏效了
猜你喜欢
  • 2017-06-14
  • 2011-10-11
  • 2014-08-05
  • 2019-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-13
  • 1970-01-01
相关资源
最近更新 更多