【问题标题】:Why won't Pry run in Heroku's console?为什么 Pry 不能在 Heroku 的控制台中运行?
【发布时间】:2012-01-17 20:49:11
【问题描述】:

我的目标是在本地和暂存服务器上使用 Pry 作为我的 Rails 应用程序的控制台。但我无法让它在 Heroku 上运行。

我正在按照these 的说明让 Heroku 使用 Pry 作为我的 Rails 应用程序的控制台。当我运行heroku run console pry 时,我的控制台打印Running console pry attached to terminal... up, run.1 然后退出。当我运行heroku console pry 时,它只会显示main,然后退出。

关于我做错了什么有什么想法吗?

这是我到目前为止所做的:

  1. 在我的 Gemfile 中,我添加了以下几行:
    gem 'pry'
    gem 'pry-rails'

  2. 我创建了一个名为 pry 的文件,其中包含:
    #!/usr/bin/env ruby
    require 'pry'
    pry

  3. 我将以下内容添加到 config/environments 中的所有文件中:
    silence_warnings do
    begin
    require 'pry'
    IRB = Pry
    rescue LoadError
    end
    end

  4. 运行bundle install

  5. 运行git push staging master

【问题讨论】:

  • 我认为把它放在项目根目录(与Gemfile等相同的目录)是正确的。正如@JohnBachir 所提到的,确保您的 Gemfile 中也有 gem 'pry',并且您已经运行了 bundle install,然后将 pryGemfileGemfileGemfile.lock 添加到您的存储库,然后再将其推送到 Heroku。跨度>
  • @Jordan,我已经这样做了;刚刚更新了问题以反映它。

标签: ruby-on-rails heroku pry


【解决方案1】:

我是为 Heroku 和 Pry 开发方法的人,但您提出了一个有趣的案例,我没有考虑过,因为我主要使用 Sinatra 和 EM 进行部署并构建自己的助手等。无论哪种方式:

要在拥有 Rails 应用程序的同时使用 Pry 和 Heroku,您只需添加 pry-rails 并 pry 到您的 gemfile(作为普通 Gem),然后 bundle install 然后 git [commit|push] 并在 Cedar 堆栈上运行 heroku run console .您在调整 config/environments 的位置所做的第 3 步没有也不应该进行,因此请尽可能恢复该更改。在你这样做并从你的应用程序的根目录中删除 pry 脚本之后(你不一定需要执行后者)Pry 将正确加载你的 Rails。

【讨论】:

  • 呃-哦。我在bamboo-mri-1.9.2 而不是ceder。它只适用于ceder吗?
  • @theWillCole 您应该也可以在 Bamboo 上使用它,只需将控制台启动调整为您的堆栈所需的那个,我相信 Bamboo 的堆栈只需 heroku console 即可。跨度>
  • 我升级到“瘦”服务器和 heroku 的“雪松”堆栈。某处沿线撬开始工作。我不完全确定问题出在哪里,但这个答案现在对我有用。
【解决方案2】:

我刚刚使用https://github.com/pry/pry/wiki/Setting-up-Rails-or-Heroku-to-use-Pry 的说明进行设置,pry 文件位于项目的根目录中。提交并推送到 Heroku - 我正在使用 Cedar 堆栈。

heroku run console pry 进行控制台会话 - 我确实发现我确实需要执行 pry 才能进入撬动提示,但它随后按我预期的方式工作。

更新:为了清楚起见,我将 pry 添加到 Gemfile 并按照说明创建了 pry 文件。您的问题是您将 gemfile 中的 pry 锁定到开发/测试 - 您是否在这些环境中在 Heroku 上运行您的应用程序?因此,为什么你会得到未定义的方法?

【讨论】:

  • 我从我的 Gemfile 中删除了 :groups => [ :development, :test ]。我不再收到未定义的方法错误,但控制台在我启动后仍会退出。
  • 对于这个问题的未来访问者,因为说明现在是 2017 年,只需运行 heroku run console
【解决方案3】:

你可能必须在你的打包器 Gemfile 中列出它。

【讨论】:

  • 已经这样做了,但忘了在问题中提及。还有其他想法吗?
猜你喜欢
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-01
  • 2012-07-16
相关资源
最近更新 更多