1. はじめに:何が起きたか
Railsでトップページ(玄関)を変えようとして、ルーティングのコードをこう書き換えました。
# config/routes.rb
get 'top' => 'homes#top' # ←これを消して
root :to => 'homes#top' # ←これに変更!
よし!と思ってブラウザを更新したら、画面が真っ赤っかに! Errno::EACCES という呪文のようなエラーが出て、アプリが動かなくなってしまいました。

2. 原因:一言でいうと「ファイルの取り合い」
このエラー、実はWindowsがファイルをロックしちゃったのが原因だそうです。
Railsくんは「玄関が変わったから、デザイン用のファイルを新しく作り直すね!」と作業をしようとしたのですが、Windows側が「ちょっと待って!そのファイルは今別のところで使ってるから、勝手に変えちゃダメ!」とファイルに鍵をかけて拒否してしまったのです。
これを専門用語で「権限エラー(Permission denied)」と呼びます。
3. 解決した手順(魔法の3ステップ)
この「鍵」を外してあげるために、以下の手順を試したら直りました!
① サーバーを「完全に」止める
ターミナルで Ctrl + C を押して、Railsサーバー(rails s)を一度しっかり止めます。まずは作業を中断するのが第一歩です。
② 一時ファイルを「お掃除」する
Railsが作業中だった「古いデータ(キャッシュ)」が残っていると、また鍵がかかる原因になります。以下のコマンドを打ち込んで、ゴミをきれいに掃除します。
rails tmp:clear
③ VSコードを「再起動」する
これが意外と大事です!目に見えないところでWindowsがファイルを掴みっぱなしにしていることがあるので、一度VSコードを閉じて、もう一度開き直すのが一番確実なリセット方法です。
4. まとめ:困った時の合言葉
WindowsでRails開発をしていると、コードは合っているのに今回のようなエラーが出ることがよくあるそうです。
そんな時は、「止める・掃除する・再起動!」。 この3つをセットで試してみてください!
5.参照
① Rails公式ガイド(日本語版)
-
アセットパイプライン
エラー画面に出ていたsprocketsという言葉や、一時ファイルの仕組みを調べるのに役立ちました。 -
Railsのキャッシュ機構
rails tmp:clearで何が消えるのかを確認するために参照しました。 -
Railsのルーティング
rootパスの正しい書き方や、特定のページをアプリのトップ画面(玄関)に設定する仕組みを調べるのに参照しました。 -
Active Storage の概要
Railsで画像を保存・加工する機能の全体像を調べるのに参照しました。特にvipsを使うための設定項目や、データベースのテーブルを作るコマンドを再確認するのに役立ちました。
② libvips 公式サイト
-
libvips 公式サイト
今回導入した画像処理エンジンvips本体の公式サイトです。Windows用の実行ファイルを探したり、どんな特徴があるのかを確認したりするのに活用しました。
6.最後に
なお、これらの情報をまとめるにあたり、生成AI(Gemini)の力を借りています。誤った情報などがあった場合には、コメントいただけると助かります!