Heroku代码= H10应用程序崩溃

时间:2017-01-21 12:01:07

标签: ruby-on-rails git heroku

我是Heroku和rails的新手。我已阅读文章为我的手机应用创建API。

我已成功在本地创建,当我运行服务器时,API正确响应,但当我尝试使用heroku链接到我的应用程序时,我在log \ console中出现错误

at=error code=H10 desc="App crashed" method=GET path="/api/v1/carbrands/" host=b-taxi-server.herokuapp.com request_id=283223f5-f68d-4c4a-bb70-3346a2e3327f fwd="156.205.91.128" dyno= connect= service= status=503 bytes=

at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=b-taxi-server.herokuapp.com request_id=10510255-6149-4583-8886-6bbb69f37aaa fwd="156.205.91.128" dyno= connect= service= status=503 bytes=

/app/app/controllers/Api/V1/carbrands_controller.rb:1:in `<top (required)>': uninitialized constant Api (NameError)
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:472:in `block (2 levels) in eager_load!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:471:in `each'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:471:in `block in eager_load!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:469:in `each'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:469:in `eager_load!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/engine.rb:346:in `eager_load!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/application/finisher.rb:56:in `each'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/application/finisher.rb:56:in `block in <module:Finisher>'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/initializable.rb:30:in `instance_exec'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/initializable.rb:30:in `run'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/initializable.rb:55:in `block in run_initializers'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `each'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `call'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
        from /app/vendor/ruby-2.2.4/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/initializable.rb:54:in `run_initializers'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/application.rb:352:in `initialize!'
        from /app/config/environment.rb:5:in `<top (required)>'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/application.rb:328:in `require_environment!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:142:in `require_application_and_environment!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:67:in `console'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
        from /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.6/lib/rails/commands.rb:17:in `<top (required)>'
        from bin/rails:4:in `require'
        from bin/rails:4:in `<main>'

Carbrands控制器位于$$ \ app \ controllers \ Api \ V1 \ carbrands_controller.rb

我的控制器carbrands_controller.rb有以下

class Api::V1::CarbrandsController < ApplicationController
  respond_to :json
  skip_before_filter :verify_authenticity_token

  def index
        output_brands
     end

    def output_brands
      brands = CarBrand.all
      #@trips = Trip.all
      if brands
        respond_to do |format|
        format.html
        format.json { render :json => brands.to_json, status: status } #see if you want to send the cars for each user or not
        end
      else
        output_error(401, @noBrands_found)
      end    

    end

end

在我的路线中

Rails.application.routes.draw do
  #api routes path
  #devise_for :users
  namespace :api, defaults: { format: :json } do
    namespace :v1 do
      resources :carbrands,  only: [:create, :index]
    end
  end
end

我不确定说实话有什么不对。我已使用git push heroku master

推送了代码

如何修复该错误?

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方案。

控制器位于app \ controllers \ Api \ V1 \下。因此&#34; A&#34;和&#34; V&#34;是资本。我需要将文件夹重命名为&#34; a&#34;和&#34; v&#34;。然后它工作!!。

此外,有时候git没有注意到这些变化,所以我所做的就是删除整个文件夹&#34; Api&#34; &GT;&GT;提交它&gt;&gt;&gt;使用&#34; api&#34;重新创建它然后提交它。之后我推了推,并且heroku工作了