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

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

ただいまの
回答率

88.58%

git push herokuが通らなくなってしまいました。

解決済

回答 1

投稿 編集

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

前提・実現したいこと

heroku上でpostgresqlを使ったrailsアプリを実装したい

railsアプリを現在作成中です。当初postgresをdbに採用しproduction環境でheroku実装していました。途中で練習のためにmysql環境に変更しようとしたところ、エラー多発し、postgresqlに戻そうとしたがgit push herokuが通らなくなってしまいました。

発生している問題・エラーメッセージ

このようなエラーがでます。

$ git push heroku

・
・
・
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Ruby app detected
remote: -----> Installing bundler 1.17.3
remote: -----> Removing BUNDLED WITH version in the Gemfile.lock
remote: -----> Compiling Ruby/Rails
remote: -----> Using Ruby version: ruby-2.6.5
remote: -----> Installing dependencies using bundler 1.17.3
remote:        Running: bundle install --without development:test --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment
remote:        Fetching gem metadata from https://rubygems.org/............
・
・
・
remote:        Using devise 4.7.2
remote:        Using devise-i18n 1.9.1
remote:        Bundle complete! 42 Gemfile dependencies, 99 gems now installed.
remote:        Gems in the groups development and test were not installed.
remote:        Bundled gems are installed into `./vendor/bundle`
remote:        Post-install message from i18n:
remote:        
remote:        HEADS UP! i18n 1.1 changed fallbacks to exclude default locale.
remote:        But that may break your application.
remote:        
remote:        If you are upgrading your Rails application from an older version of Rails:
remote:        
remote:        Please check your Rails app for 'config.i18n.fallbacks = true'.
remote:        If you're using I18n (>= 1.1.0) and Rails (< 5.2.2), this should be
remote:        'config.i18n.fallbacks = [I18n.default_locale]'.
remote:        If not, fallbacks will be broken in your app by I18n 1.1.x.
remote:        
remote:        If you are starting a NEW Rails application, you can ignore this notice.
remote:        
remote:        For more info see:
remote:        https://github.com/svenfuchs/i18n/releases/tag/v1.1.0
remote:        
remote:        Removing bootsnap (1.4.6)
remote:        Removing bcrypt (3.1.13)
remote:        Removing i18n (1.8.4)
remote:        Bundle completed (5.14s)
remote:        Cleaning up the bundler cache.
remote: -----> Installing node-v12.16.2-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote:        Running: rake assets:precompile
remote:        rake aborted!
remote:        NoMethodError: undefined method `deep_symbolize_keys' for #<String:0x0000558fb3325648>
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/secrets.rb:31:in `block in parse'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/secrets.rb:26:in `each'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/secrets.rb:26:in `each_with_object'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/secrets.rb:26:in `parse'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/application.rb:399:in `secrets'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/devise-4.7.2/lib/devise/secret_key_finder.rb:12:in `find'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/devise-4.7.2/lib/devise/rails.rb:37:in `block in <class:Engine>'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/initializable.rb:32:in `instance_exec'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/initializable.rb:32:in `run'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/initializable.rb:61:in `block in run_initializers'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/initializable.rb:60:in `run_initializers'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/application.rb:361:in `initialize!'
remote:        /tmp/build_c2106e1f/config/environment.rb:7:in `<main>'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/bootsnap-1.4.7/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies.rb:291:in `block in require'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies.rb:257:in `load_dependency'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/activesupport-5.2.4.3/lib/active_support/dependencies.rb:291:in `require'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/application.rb:337:in `require_environment!'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/railties-5.2.4.3/lib/rails/application.rb:520:in `block in run_tasks_blocks'
remote:        /tmp/build_c2106e1f/vendor/bundle/ruby/2.6.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/task.rb:62:in `block (2 levels) in define'
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 vbapp0108.
remote: 
To https://git.heroku.com/@@@.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/@@@.git'

該当のソースコード

source "https://rubygems.org"
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby "2.6.5"
gem "bootsnap", ">= 1.1.0", require: false
gem "coffee-rails", "~> 4.2"
gem "jbuilder", "~> 2.5"
gem "puma", "~> 3.11"
gem "rails", "~> 5.2.4"
gem "sass-rails", "~> 5.0"
gem "turbolinks", "~> 5"
gem "uglifier", ">= 1.3.0"
gem "websocket-extensions"
gem "faker"
gem "mini_magick"
gem "ransack"
gem "kaminari"
gem "dotenv-rails"
gem "font-awesome-sass", "~> 5.4.1"
gem "devise"
gem "omniauth-twitter"
gem "omniauth-facebook"
gem "omniauth-google-oauth2"
gem "devise-i18n"
gem "rails-i18n", "~> 5.1"
gem "bootstrap", "~> 4.4.1"
gem "devise-bootstrap-views", "~> 1.0"
gem "jquery-rails"

group :development, :test do
  gem "byebug", platforms: %i(mri mingw x64_mingw)
  gem "factory_bot_rails"
  gem "pry-rails"
  gem "rspec-rails"
  gem "sqlite3", group: [:development, :test]
end

group :development do
  gem "bullet"
  gem "listen", ">= 3.0.5", "< 3.2"
  gem "rubocop", require: false
  gem "rubocop-airbnb"
  gem "rubocop-rails"
  gem "spring"
  gem "spring-commands-rspec"
  gem "spring-watcher-listen", "~> 2.0.0"
  gem "web-console", ">= 3.3.0"
end

group :test do
  gem "capybara", ">= 2.15"
  gem "chromedriver-helper"
  gem "selenium-webdriver"
end

group :production do
  gem "pg"
end
# SQLite version 3.x
#   gem install sqlite3
#
#   Ensure the SQLite 3 gem is defined in your Gemfile
#   gem 'sqlite3'
#
default: &default
  adapter: sqlite3
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  timeout: 5000

development:
  <<: *default
  database: db/development.sqlite3

# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
test:
  <<: *default
  database: db/test.sqlite3

production:
  <<: *default
  adapter: postgresql
  encoding: unicode
  pool: 5
require "yaml"
require "active_support/message_encryptor"
require "active_support/core_ext/string/strip"

module Rails
  # Greatly inspired by Ara T. Howard's magnificent sekrets gem. 😘
  class Secrets # :nodoc:
    class MissingKeyError < RuntimeError
      def initialize
        super(<<-end_of_message.squish)
          Missing encryption key to decrypt secrets with.
          Ask your team for your master key and put it in ENV["RAILS_MASTER_KEY"]
        end_of_message
      end
    end

    @cipher = "aes-128-gcm"
    @root = File # Wonky, but ensures `join` uses the current directory.

    class << self
      attr_writer :root

      def parse(paths, env:)
        paths.each_with_object(Hash.new) do |path, all_secrets|
          require "erb"

          secrets = YAML.load(ERB.new(preprocess(path)).result) || {}
          all_secrets.merge!(secrets["shared"].deep_symbolize_keys) if secrets["shared"]
          all_secrets.merge!(secrets[env].deep_symbolize_keys) if secrets[env]
        end
      end
    end
  end
end


どんな些細な情報でも構いません。ご指摘いただけると幸いです。

試したこと

上記ログのエラーメッセージに記載されている
gemfile.lockを削除してもう一度bundle install --without productionし直す.

remote:   NoMethodError: undefined method `deep_symbolize_keys' for #<String:0x0000558fb3325648>


この部分が怪しいと思ったのですが過去の記事を参考に色々といじってみたのですが改善せずです。。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

回答 1

checkベストアンサー

+1

/config/environment.rb でハッシュを期待している位置に文字列を渡しています

参考: Rake aborted - NoMethodError: undefined methor 'deep_symbolize_keys'

you're probably passing a string in a line of your /config/environment.rb somewhere
where it's expecting a hash

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/07/30 20:37

    ありがとうございます。secrets.ymlのfileの中に文字列が含まれていることが原因でした。

    キャンセル

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

  • ただいまの回答率 88.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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