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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Heroku

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Ruby on Rails

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

Q&A

解決済

1回答

2018閲覧

Herokuプッシュ時に、undefined method `[]' for nil:NilClassエラーに引っかかる

vvAndrewvv

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Heroku

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

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/11/14 10:47

編集2020/11/15 05:11

前提・実現したいこと

Railsでローカル環境でアプリを作成し、
Herokuへpushする際にエラーが発生し、原因を探っております。

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

エラーメッセージ remote: rake aborted! remote: NoMethodError: undefined method `[]' for nil:NilClass ### 該当のソースコード remote: rake aborted! remote: NoMethodError: undefined method `[]' for nil:NilClass remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:278:in `sprockets_context' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:124:in `asset_path' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:137:in `asset_url' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:155:in `image_url' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/script/tree/funcall.rb:151:in `block in _perform' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:108:in `block in with_function' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:135:in `with_frame' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:108:in `with_function' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/script/tree/funcall.rb:149:in `_perform' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/script/tree/node.rb:50:in `perform' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:398:in `visit_prop' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/base.rb:36:in `visit' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:158:in `block in visit' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:79:in `block in with_base' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:135:in `with_frame' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:79:in `with_base' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:158:in `visit' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:440:in `block (2 levels) in visit_rule' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:440:in `map' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:440:in `block in visit_rule' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:179:in `with_environment' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:438:in `visit_rule' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/base.rb:36:in `visit' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/tree/visitors/perform.rb:158:in `block in visit' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4/lib/sass/stack.rb:79:in `block in with_base' (中略) remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/legacy.rb:105:in `block in logical_paths' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/legacy.rb:104:in `each' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/legacy.rb:104:in `logical_paths' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:140:in `find' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/manifest.rb:186:in `compile' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/task.rb:67:in `block (3 levels) in define' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/rake/sprocketstask.rb:147:in `with_logger' remote: /tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sprockets-rails-3.2.2/lib/sprockets/rails/task.rb:66:in `block (2 levels) in define' remote: Tasks: TOP => assets:precompile remote: (See full trace by running task with --trace) remote: ! remote: ! Precompiling assets failed. ```Rails: ローカルリポジトリのmasterブランチにマージし、% git push heroku master後のターミナルの出力 [バージョン] ruby2.6.5 Rails6.0.0(アプリ作成時の指定バージョン) gem 3.0.3/heroku 7.47.2/git 2.24.3 ### 試したこと CSSのscssのファイルが適用されていないことが原因だと考え、app/assets/application.cssのファイル名をapplication.css.scssに変更して再度プッシュしましたが、うまくいきませんでした。また、上記該当のファイルは自分のPCのRailsアプリケーション上で確認することができない(作成していない)です。 参考: [RailsでアプリをHerokuにあげる時のエラー各種](https://qiita.com/pokohide/items/017afa5be3b7dc200a8d) [NoMethodError: undefined method `[]' for nil:NilClass when pushing to Heroku ](https://stackoverflow.com/questions/32939496/nomethoderror-undefined-method-for-nilnilclass-when-pushing-to-heroku) [nil:NilClassの「NoMethodError」への対処方法](https://www.ryotaku.com/entry/2019/02/18/231458) ### お願い 一人では解決が難しいためアドバイスを頂けると有難いです。

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

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

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

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

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

vvAndrewvv

2020/11/14 12:48

ご意見ありがとうございます。修正しました。
winterboum

2020/11/14 13:24

/tmp/build_4fbf04da/vendor/bundle/ruby/2.6.0/gems/sass-3.7.4 ではないエラー行はありませんでしたか?
vvAndrewvv

2020/11/14 14:05 編集

エラー行としてはないですね。警告文はありました。 ① remote: The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`. ② remote: DEPRECATION WARNING: Including LoggerSilence is deprecated and will be removed in Rails 6.1. Please use `ActiveSupport::LoggerSilence` ③ [3/4] Linking dependencies... warning " > webpack-dev-server@3.11.0" has unmet peer dependency "webpack@^4.0.0 || ^5.0.0". warning "webpack-dev-server > webpack-dev-middleware@3.7.2" has unmet peer dependency "webpack@^4.0.0".
vvAndrewvv

2020/11/14 14:11

すみません。heroku logsの中にありました。 2020-11-14T11:52:20.956715+00:00 app[web.1]: [ef363e9e-56f5-43ef-ad77-7fb469da6541] Started GET "/" for 106.154.139.206 at 2020-11-14 11:52:20 +0000 2020-11-14T11:52:20.957715+00:00 app[web.1]: [ef363e9e-56f5-43ef-ad77-7fb469da6541] 2020-11-14T11:52:20.957716+00:00 app[web.1]: [ef363e9e-56f5-43ef-ad77-7fb469da6541] ActionController::RoutingError (No route matches [GET] "/"): ちなみに、VScodeのファイルでは、 [config/routes.rb] Rails.application.routes.draw do devise_for :users, path_names: { sign_up: '' }, controllers: { registrations: "users/registrations", sessions: "users/sessions" } root "items#index" resources :users end と記述しています。
winterboum

2020/11/14 22:57

そのエラーも気になりますが、質問にあるエラーとは違うような気がします。発生日時は一致してますか? それと assets:precompileはしていますか
vvAndrewvv

2020/11/15 04:33 編集

発生日時は一致しています。また、一度assets:precompileした後に、再度herokuにプッシュしたのですが、出力結果に変化はありませんでした。 [config/application.rb] config.assets.initialize_on_precompile = false [ターミナル] heroku run bundle exec rake assets:precompile RAILS_ENV=production -a [appname] それと、undefined method `[]' for nil:NilClassエラーに対して、VScode上に上記エラー行の空の該当ファイルを作成しても出力に変化はなかったのですが、ローカルではなく、Heroku上のファイルを直接編集する手段はないでしょうか。sprockets-3.7.2,sass-3.7.4,sprockets-rails-3.2.2はgemfileに保存されています。 ※環境変数が設定されていない可能性も考えたのですが、 % EDITOR="vi" bin/rails credentials:edit で、credentials.yml.enc上のmaster.keyも確認したので設定は問題ないと思います。
guest

回答1

0

自己解決

app/assets配下のnew.css.map等の不要ファイルを除去することで、無事デプロイできました。
CSS・SCSS(SASS)ファイルの混在やCSS関連の他の不要なファイルが邪魔してデプロイ時のエラーの原因になっていたようです。(ちなみにapplication.css/application.scssのどちらでもデプロイできました。)
色々ご指摘頂きありがとうございました。

投稿2020/11/15 11:59

vvAndrewvv

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問