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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

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

Heroku

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

Ruby on Rails

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

Q&A

1回答

498閲覧

Rails 5アプリをherokuにデプロイしようとするとCould not detect rake tasksエラーが出る

igar

総合スコア110

Ruby on Rails 5

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

Heroku

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

Ruby on Rails

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

0グッド

0クリップ

投稿2018/08/07 18:49

編集2018/08/14 20:11

git push heroku masterするとエラーが出てしまいます。

remote: ! Could not detect rake tasks remote: ! ensure you can run `$ bundle exec rake -P` against your app remote: ! and using the production group of your Gemfile. remote: ! rake aborted! remote: ! NameError: undefined local variable or method `config' for main:Object

試したこと

続けてエラーが出ており、前回のエラーは解決しましたが、前回までにやったことがエラーの原因の可能性もあるかもしれないので書いておきます。

  • エラー1

Ruby on Rails - herokuにrailsアプリをpushしようとするとDetected sqlite3 gem which is not supported on Heroku:エラーが出る(140097)|teratail

  • エラー2
remote: /tmp/build_319fb38fa8fa3b982e5d369cd184a217/vendor/bundle/ruby/2.4.0/gems/rake-12.3.1/exe/rake:27:in `<top (required)>' remote: Tasks: TOP => environment remote: (See full trace by running task with --trace) remote: remote: ! remote: ! Precompiling assets failed. remote: ! remote: ! Push rejected, failed to compile Ruby app. remote: remote: ! Push failed remote: Verifying deploy... remote: remote: ! Push rejected to quiet-sands-44976. remote: To https://git.heroku.com/quiet-sands-44976.git ! [remote rejected] master -> master (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/quiet-sands-44976.git'

解決

# config/application.rb config.assets.initialize_on_precompile = false
  • エラー3 (現在のエラー)
$ RAILS_ENV=production bundle exec rake assets:precompile rake aborted! NameError: undefined local variable or method `config' for main:Object /home/yuis/share/aptnote/config/application.rb:9:in `<top (required)>' /home/yuis/share/aptnote/rakefile:4:in `require_relative' /home/yuis/share/aptnote/rakefile:4:in `<top (required)>' /home/yuis/.rbenv/versions/2.4.2/bin/bundle:23:in `load' /home/yuis/.rbenv/versions/2.4.2/bin/bundle:23:in `<main>' (See full trace by running task with --trace) $ rake assets:precompile RAILS_ENV=production rake aborted! NameError: undefined local variable or method `config' for main:Object /home/yuis/share/aptnote/config/application.rb:9:in `<top (required)>' /home/yuis/share/aptnote/rakefile:4:in `require_relative' /home/yuis/share/aptnote/rakefile:4:in `<top (required)>' (See full trace by running task with --trace)

config/application.rb:9:にはエラー2の対処として追記したconfig.assets.initialize_on_precompile = false が書いてあります。これを抜くとエラー2が出てしまいます。

参考にしたページ

ruby on rails - heroku push error: "Could not detect rake tasks" - Stack Overflow

追記 (8/15)

ふと思ったのですが、config.assets.initialize_on_precompile = falseを書く場所は以下で合っていますでしょうか??

moduleの中に最初は書きましたが、そうすると依然として同様のエラーが出続けていたため、
module の外に書かなきゃいけないんだなと思い込んでいましたが、もしかして間違っていますか?

config\application.rb

require_relative 'boot' require 'rails/all' # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) config.assets.initialize_on_precompile = false module Aptnote class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 5.2 # config.assets.initialize_on_precompile = false # => Precompiling assets failed. # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers # -- all .rb files in that directory are automatically loaded after loading # the framework and any gems in your application. end end

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

config.assets.initialize_on_precompile = falseを記載する場所はModuleの中で良いはずです。

エラー2はHerokuに対するgit pushを行った時のものだと思うのですが、上記コードをModuleの中に戻した上で、Herokuに対するgit pushを行う前に、RAILS_ENV=production bundle exec rake assets:precompileを実行するとどうなりますでしょうか。

投稿2018/08/19 05:30

psuke

総合スコア202

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Mic12

2018/11/01 07:06

横から大変失礼します。全く同じエラーです。 上記実行後、LoadError: cannot load such file -- fog/aws と表示されます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問