2017-01-21 4 views
0

Je suis nouveau à Heroku et rails. J'ai lu des articles pour créer des API pour mon application téléphonique.Heroku code = H10 app s'est écrasé

J'ai réussi à créer localement et quand je lance le serveur, les API répondre correctement, mais lorsque je tente d'utiliser le lien heroku à mon application, j'obtiens l'erreur dans le journal \ console en disant

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 contrôleur est sous $$ app \ contrôleurs \ \ Api \ V1 \ carbrands_controller.rb

J'ai contrôleur carbrands_controller.rb qui suit

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 

dans mes voies I J'ai

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 

Je ne suis pas sûr de ce qui ne va pas pour être honnête. J'ai poussé le code en utilisant git push heroku master

Comment réparer cette erreur?

Répondre

0

J'ai finalement trouvé la solution pour moi.

le contrôleur était sous app \ controllers \ Api \ V1 \. D'où le "A" et le "V" était capital. J'avais besoin de renommer le dossier avec "a" et "v". Alors ça a marché !!

De plus, parfois le git ne remarque pas ces changements, ce que j'ai fait est de supprimer tout le dossier "Api" >> commit it >>> le recréer avec "api" puis le valider. Après cela, j'ai poussé et heroku travaillé