在Heroku上部署我的动态rails站点后,日志显示这个Heroku应用程序代码=H10应用程序崩溃



我不知道为什么我的Heroku应用程序崩溃了。这是我第一次部署到Heroku,我按照我的训练营的步骤部署。之后,我部署了我的我尝试运行heroku run rails c, heroku run rails console, heroku run rails test, heroku open, heroku run rails db:migrate, heroku restart,我已经尝试了我可以的每一个命令,无论是在我的本地计算机和heroku(我认为这并不重要,但只是更多的信息)heroku run rails。然而,有趣的命令是heroku run rails c,因为它会告诉我/app/app/controllers/static_controller.rb:4:in `<class:StaticController>': undefined method `layout' for StaticController:Class (NoMethodError)。我觉得这很有趣因为在我的笔记和视频中,我100%地复制了Static_Controller。我一直寻找的信息为什么会是布局定义,然而我短暂的几小时后出现。我一直在转着圈跑的。如果有人知道为什么我的布局是未定义的。我有一些建议。这就是我的Static_controller的样子


class StaticController < Rails::ApplicationController
layout false
def index
render file: Rails.root.join('public', 'index.html')
end
end

注:我已经添加了一个档案& &;NPM init -y(更新的脚本)

web: bundle exec puma -t 5:5 -p ${PORT:-3000} -e ${RACK_ENV:-development} 
...
"scripts": {
"build": "cd client && npm install --only=dev && npm install && npm run build && cd ..",
"deploy": "cp -a client/build/. public/",
"heroku-postbuild": "npm run build && npm run deploy && echo 'Client Built'"
},
...

我很快就会回复。

你的basecamp的例子看起来很时髦,很难告诉什么自由式是发生在那里。似乎没有Rails::ApplicationController这样的东西(至少在Rails 6中,我手头有):

我使用pry检查它

>> ls Rails
constants: 
Application       Command        ConsoleMethods  Info            MailersController  Railtie                    VERSION          
Autoloaders       Configuration  Engine          InfoController  Paths              Secrets                    WelcomeController
BacktraceCleaner  Console        Html            Initializable   Rack               SourceAnnotationExtractor

并试图重现:

>> class Foo < Rails::ApplicationController
|   layout false
| end  
NameError: uninitialized constant Rails::ApplicationController

给出了一个完全不同的错误。

让你的控制器继承自"correct"控制器类:

>> class Foo < ActionController::Base
|   layout false
| end  
=> Foo

,给它一个去。

,但高于一切,你似乎直接部署heroku的东西——这将是一个痛苦的经历。我建议首先关注确保它在本地运行rails sever命令。(你的训练营课程/材料应该从这一点开始,否则,我会认为这个训练营很可疑…如——不是由有合理经验的人来教别人)