Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试访问heroku控制台时,“您无权访问应用程序”_Ruby On Rails_Heroku_Collaboration_Rails Console_Rake Test - Fatal编程技术网

Ruby on rails 尝试访问heroku控制台时,“您无权访问应用程序”

Ruby on rails 尝试访问heroku控制台时,“您无权访问应用程序”,ruby-on-rails,heroku,collaboration,rails-console,rake-test,Ruby On Rails,Heroku,Collaboration,Rails Console,Rake Test,我最近开始使用RubyonRails在Heroku上的一个项目中进行合作。我被添加为合作者,并将远程设备添加到我的环境中。经过一些发展,我推动了一些变化,没有出现任何问题: $ git push staging 其中staging是我的远程服务器的名称。 后来,当我尝试在Heroku上运行rake测试时,我收到一个错误: $heroku run rake test --app staging Running `rake test` attached to terminal... failed

我最近开始使用RubyonRails在Heroku上的一个项目中进行合作。我被添加为合作者,并将远程设备添加到我的环境中。经过一些发展,我推动了一些变化,没有出现任何问题:

$ git push staging
其中staging是我的远程服务器的名称。 后来,当我尝试在Heroku上运行rake测试时,我收到一个错误:

$heroku run rake test --app staging
Running `rake test` attached to terminal... failed
 !    You do not have access to the app staging.
这很奇怪,因为我完全能够推动自己的改变。我检查了Heroku仪表板,发现我的推送记录在那里。然后我尝试使用控制台查看日志,同样的问题也出现了

$ heroku logs --app staging
 !    You do not have access to the app staging.
最后,我尝试访问控制台,但也失败了

$ heroku run rails console --app staging
Running `rails console` attached to terminal... failed
 !    You do not have access to the app staging.
此时,我更新了我的Heroku toolbelt安装,并使用Heroku auth验证我的电子邮件是否显示,但错误仍然存在。我目前正在联系Heroku支持部门,但我希望有类似问题的人能同时帮助我


谢谢

这是因为您的ssh密钥不再允许访问。确保您的ssh密钥相同。您还可以重新生成ssh密钥并将其添加到heroku。

因此,万一有人遇到类似问题,就会出现这种情况,因为我将heroku应用程序的名称与git remotes的名称混用在一起。因此,当我调用-app暂存我的远程设备的名称时,我应该使用应用程序的实际名称,如Heroku中所示。

如果您没有添加Heroku git远程存储库,也会发生这种情况

您可以使用以下命令添加它:

git remote add heroku https://git.heroku.com/<your project>.git
在第一次使用heroku toolbelt命令之前,请确保运行heroku登录。它不会告诉您以前没有登录。

您还可以运行:

heroku run rake test --remote staging

不确定引擎盖下会发生什么,但本地CLI工具根据您的git remote确定您指的是哪个应用程序。

在我的案例中,我遇到了相同的问题,我没有从master上推送,因此我不得不使用以下方法:
git push heroku:main

我发现自己又回到了这个问题/答案上来了好几次。所以我想我应该记下是什么引起的以及我是如何修复的

原因 在我的例子中,我为应用程序创建了一个登台环境

解决方案 现在heroku需要这样的东西来进行登台:

或者像这样进行生产:


只要用您正在运行的任何命令替换env即可

谢谢,这很有帮助。这是令人困惑的,因为如果您运行$heroku run bash时没有应用程序名称,它会警告您存在多个应用程序,然后列出git远程设备的名称。所以我一直在尝试选择一个使用远程名称的应用程序。我的案例与这个问题的问题条件略有不同,但你的回答对我很有帮助。谢谢你。我试过了,但也犯了同样的错误。您还有其他建议吗?对于在运行heroku登录之前意外运行heroku create的情况,是否有帮助?我不知道如何扭转这种局面。
heroku run rake test --remote staging
heroku run env -a my_app_name --remote staging
heroku run env -a my_app_name --remote production