質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.47%

  • Ruby on Rails

    7495questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 4

    2455questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

  • API

    1562questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Heroku

    912questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Rails4でGrapeを使ってAPIを作成してHerokuに上げたら本番だけエラーが発生してしまった。

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 643

Ruby on Rails4でGrapeを使ってAPIを作ってHeroku上にあげたのですが、本番環境だけ以下のログが出てしまって、Application Errorでサイトが落ちてしまいます。開発環境ではしっかりと動くのですが。。

ログをみると何故か/app/api

2016-04-10T08:45:07.470872+00:00 app[worker.1]: uninitialized constant API::Root::V1
2016-04-10T08:45:07.470893+00:00 app[worker.1]: /app/app/api/api/root.rb:8:in `<class:Root>'
2016-04-10T08:45:07.470894+00:00 app[worker.1]: /app/app/api/api/root.rb:2:in `<module:API>'
2016-04-10T08:45:07.470895+00:00 app[worker.1]: /app/app/api/api/root.rb:1:in `<top (required)>'
2016-04-10T08:45:07.470895+00:00 app[worker.1]: /app/config/routes.rb:55:in `block in <top (required)>'
2016-04-10T08:45:07.470897+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:434:in `instance_exec'
2016-04-10T08:45:07.470898+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:412:in `draw'
2016-04-10T08:45:07.470897+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/actionpack-4.2.5/lib/action_dispatch/routing/route_set.rb:434:in `eval_block'
2016-04-10T08:45:07.470899+00:00 app[worker.1]: /app/config/routes.rb:2:in `<top (required)>'
2016-04-10T08:45:07.470900+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application/routes_reloader.rb:40:in `block in load_paths'
2016-04-10T08:45:07.470900+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application/routes_reloader.rb:40:in `each'
2016-04-10T08:45:07.470902+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application/routes_reloader.rb:16:in `reload!'
2016-04-10T08:45:07.470901+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application/routes_reloader.rb:40:in `load_paths'
2016-04-10T08:45:07.470903+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application.rb:170:in `reload_routes!'
2016-04-10T08:45:07.470903+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/devise-3.5.6/lib/devise/rails.rb:14:in `block in <class:Engine>'
2016-04-10T08:45:07.470904+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.5/lib/active_support/lazy_load_hooks.rb:36:in `call'
2016-04-10T08:45:07.470905+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.5/lib/active_support/lazy_load_hooks.rb:36:in `execute_hook'
2016-04-10T08:45:07.470906+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.5/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'
2016-04-10T08:45:07.470906+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.5/lib/active_support/lazy_load_hooks.rb:44:in `each'
2016-04-10T08:45:07.470909+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `instance_exec'
2016-04-10T08:45:07.470910+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/initializable.rb:55:in `block in run_initializers'
2016-04-10T08:45:07.470912+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:226:in `block in tsort_each'
2016-04-10T08:45:07.470907+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/activesupport-4.2.5/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'
2016-04-10T08:45:07.470908+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application/finisher.rb:55:in `block in <module:Finisher>'
2016-04-10T08:45:07.470909+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/initializable.rb:30:in `run'
2016-04-10T08:45:07.470916+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:224:in `tsort_each'
2016-04-10T08:45:07.470918+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/initializable.rb:54:in `run_initializers'
2016-04-10T08:45:07.470918+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/railties-4.2.5/lib/rails/application.rb:352:in `initialize!'
2016-04-10T08:45:07.470912+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'
2016-04-10T08:45:07.470919+00:00 app[worker.1]: /app/config/environment.rb:18:in `<top (required)>'
2016-04-10T08:45:07.470913+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:429:in `each_strongly_connected_component_from'
2016-04-10T08:45:07.470920+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/sidekiq-4.1.0/lib/sidekiq/cli.rb:235:in `boot_system'
2016-04-10T08:45:07.470914+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:347:in `block in each_strongly_connected_component'
2016-04-10T08:45:07.470921+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/sidekiq-4.1.0/lib/sidekiq/cli.rb:49:in `run'
2016-04-10T08:45:07.470915+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:345:in `call'
2016-04-10T08:45:07.470922+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/bin/sidekiq:23:in `load'
2016-04-10T08:45:07.470914+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:345:in `each'
2016-04-10T08:45:07.470921+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/gems/sidekiq-4.1.0/bin/sidekiq:12:in `<top (required)>'
2016-04-10T08:45:07.470916+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:345:in `each_strongly_connected_component'
2016-04-10T08:45:07.470923+00:00 app[worker.1]: /app/vendor/bundle/ruby/2.2.0/bin/sidekiq:23:in `<main>'
2016-04-10T08:45:07.470917+00:00 app[worker.1]: /app/vendor/ruby-2.2.3/lib/ruby/2.2.0/tsort.rb:203:in `tsort_each'

環境は

  • Rails 4.2.5
  • ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-darwin14]
 routes.rb
mount API::Root => "/"
 application.rb
config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb')
config.autoload_paths += Dir[Rails.root.join('app', 'api', '*')]

config.middleware.use(Rack::Config) do |env|
  env['api.tilt.root'] = Rails.root.join 'app', 'views', 'api'
end

 フォルダの階層

/app

/api

/api

root.rb
/V1

root.rb
articles.rb

 /app/api/api/root.rb
module API
  class Root < Grape::API
    prefix "api"
    format :json
    formatter :json, Grape::Formatter::Jbuilder
    mount V1::Root
  end
end
 /app/api/api/V1/root.rb
module API
  module V1
    class Root < Grape::API
      version 'v1', :using => :path
      mount V1::Articles
    end
  end
end
 /app/api/api/V1/articles.rb
module API
  module V1
    class Articles < Grape::API
      format :json
      formatter :json, Grape::Formatter::Jbuilder
      resource :articles do
        get "/" do
          @articles = @articles.all
        end
      end
    end
  end
end

以上のようになっていて、localhostではちゃんとJSONが出力されるのですが、本番環境(Heroku)にプッシュすると上記のようなエラーが発生してしまって、その原因がわかりません。
エラーによると、/app/app/api/api/...と階層の最初に/appが何故か追加されていて、おそらくこのせいでRailsの命名規則?みたいなのに従ってないからダメ!みたいなことだと思うんですが、何故Herokuにあげたらこの/appという階層が追加されたかも理由がさっぱりです。
分かるかたいたら宜しくお願いします!!

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

まだ回答がついていません

関連した質問

同じタグがついた質問を見る

  • Ruby on Rails

    7495questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails 4

    2455questions

    Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

  • API

    1562questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

  • Heroku

    912questions

    HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。