LoginSignup
32
21

More than 3 years have passed since last update.

Ruby on Railsで「"application.js" is not present in the asset pipeline」とエラー

Last updated at Posted at 2019-10-09

progateのRuby on Railsをローカル環境で学習中に表題のエラーが発生したためメモとしてまとめます。

ログアウト、いいね機能を実装した際に
ActionView::Template::Error: The asset "application.js" is not present in the asset pipeline
とjavascriptのファイルが存在しないとエラーが出ました。

調べると原因はrailsのバージョンの違いによるものでした。
rails5.xではJavascriptのフォルダは
app/assets/javascripts/application.js

とある一方、rails6.0では
app/javascripts/application.js
と場所が異なります。

rails5.xでのビューファイルhead内は
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
となっているため以下のように変更し、正常にapplication.jsが読み込まれるようにし解決しました。なお全てのビューファイルで反映してほしいため、app/views/layouts/application.html.erbに変更を加えています。

application.html.erb
  <head>
    <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>

上でも少し触れましたが、progateで使用されているrailsバージョン「5.x」を指定してプロジェクトを作成する必要があったのですが、何も分からずrails new [プロジェクト名]で始めてしまい、バージョンは最新の「6.0.1」となっていました。
学習の中でProgateに記載されているコードをそのままエディタに貼り付けた際、application.html.erbのheadタグ内も誤って書き換えたのが原因です。

書籍等で学習する際は以下の記事を参考にアプリ作成を始めようと思います。
Rails開発環境の構築(複数バージョン共存可能)(Homebrew編)

32
21
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
21