🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Heroku

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

GitHub

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

Ruby on Rails

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

2647閲覧

再デプロイするとrake aborted!NoMethodError: undefined method `[]' for nil:NilClassが出ます

harunyan7

総合スコア1

Heroku

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

GitHub

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

Ruby on Rails

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/12/03 08:22

編集2020/12/03 15:53

前提・実現したいこと

再デプロイすると
rake aborted!NoMethodError: undefined method `[]' for nil:NilClass
が発生します。

原因は恐らくプリコンパイルしているassetsファイルにあるCSSだと思いますが、
CSSの内容を編集しても治りません。

原因はどこにあるのでしょうか?
一週間程色々試してみたのですが治らず困っています。

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

remote: rake aborted! remote: NoMethodError: undefined method `[]' for nil:NilClass remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:278:in `sprockets_context' remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:124:in `asset_path' remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:137:in `asset_url' remote: /tmp/build_aeab412a/vendor/bundle/ruby/2.6.0/gems/sprockets-3.7.2/lib/sprockets/sass_processor.rb:155:in `image_url' 略 remote: Tasks: TOP => assets:precompile 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 アプリ名. remote: To https://git.heroku.com/アプリ名.git ! [remote rejected] main -> main (pre-receive hook declined) error: failed to push some refs to 'https://git.heroku.com/アプリ名.git'

CSS編集内容

デプロイ後に編集したCSSファイルは下記のみです。

style.css

1 background-image: url('ファイル名.png'); 2 ↓ 3 background-image: image-url('ファイル名.png');

仮説

NoMethodErrorの下にsass_processor.rb:278とあったので、
最初はこの部分に問題があると思っておりましたが、
sass_processor.rbなんてファイルは存在しません。
teratail内の質問を見ていると、CSSファイルに問題があった方が多いので、
やはりプリコンパイルしているassets内のCSSに問題があると考えています。

現在の状況

本番環境は動いていますが、デプロイ後の編集内容が反映されていない状態です。

ブランチを切り忘れたため、main(マスターブランチ)で最後まで作業しており、
編集内容はリモートにpushしているため、ローカルの内容は全てリモートに反映されています。

heroku configで環境変数を確認したところ、
RAILS_MASTER_KEYという変数名で値が設定されていたので問題ないかと思います。

git statusで状況を確認したところ
nothing to commit, working tree clean でした。

試したこと

・application.cssをapplication.css.scssに変更する

・production.rbのconfig.assets.compile = false を true に変える

・不要なCSSファイルの削除

リンク内容
リンク内容

以上です。
原因はやはりCSSでしょうか?
teratailでは同じエラーの質問がいくつか見受けられますが、どれを試しても上手くいかなかったので
他に何かやり方がないかご教示頂きたいです。

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

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

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

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

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

m.ts10806

2020/12/03 14:27

Gitで管理してるなら1つ前(もしくは正常に動作していた)のリビジョンに戻して確認してみると良いのでは。 提示されてる情報がほとんどないので、こちらでは判断できません。 というか、Rail関係のタグつけたほうが良いのでは? 「ファイル」「Github」は不要でしょうし、「CSS」よりSCSS関連のタグのほうが良いでしょう。
harunyan7

2020/12/03 16:02

コメントありがとうございます。タグの修正を行いました。 今回のアプリはCSSで作成しており、SCSSについてはまだ学習を行っておらず 適切なタグが分かりかねてしまったため、SCSSに関するタグは使用しておりません。 コードはGitHubで管理しているため、Gitは削除しGitHubを残しました。
neko_daisuki

2020/12/04 00:12

ファイル名.png は app/assets に存在しますか?
guest

回答1

0

自己解決

RAILS_ENV=production bundle exec rake assets:precompile assets:cleanで
assetファイルのコンパイルを行い
style.cssのbackground-imageをbackground-image: url('ファイル名.png'); にすることで解決出来ました。

投稿2020/12/04 05:06

harunyan7

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問