発生した問題
RailsアプリをHerokuにデプロイしたところ、Zeitwerk::NameErrorが発生してしまい、アプリがクラッシュしてしまいました。
コンソールを開くとオートロードに必要なコントローラーのファイルが存在しないと言われています。
エラーメッセージ
/app/vendor/bundle/ruby/3.0.0/gems/zeitwerk-2.4.2/lib/zeitwerk/loader/callbacks.rb:18:in `on_file_autoloaded': expected file /app/app/controllers/users/youtube_controller.rb to define constant Users::YoutubeController, but didn't (Zeitwerk::NameError)
状況
Rails6のActionTextでYoutubeの埋め込みを行うためにYoutubeControllerを作成しました。
エラーコードでは/app/app/controllers/users/youtube_controller.rbがありませんと言われていますが、このディレクトリ(他のコントローラーと同じ)にはyoutube_controller.rbは存在しています。
class YoutubeController < ApplicationController def show @youtube = Youtube.new(id: params[:id]) content = render_to_string( partial: "youtubes/thumbnail", locals: { youtube: @youtube }, formats: [:html] ) render json: { sgid: @youtube.attachable_sgid, content: content } end end
となっており、コントローラー名に別の文字列を使用したりはしていません。
補足情報
ローカルではエラーは発生しておらず、ページの表示、Youtubeの埋め込み、再生全て問題なくできています。
Herokuに公開している本番環境はトップページを開くこともできなくなっています。
ファイルが存在しているのにありませんと言われているため何を修正したらいいのかわからないです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/10/30 14:20
2021/10/30 23:35 編集
2021/11/01 16:01