はじめに
おはようございます!今日は朝からRuby on Railsの学習を進め、主に以下のトピックに取り組みました。
- eachや- mapを使った繰り返し処理
- ハッシュの操作(追加・削除・更新、ネストしたハッシュ)
- Rails環境構築とトップページ作成
- Devise を使ったログイン機能の導入
一通りやってみたものの、思った以上にエラーにハマり、少し苦戦した部分もありました。今回はその学習の流れやつまずき、そして得られた気づきをまとめます。
1. 朝イチの目標設定
- 05:30 – 06:30eachメソッドを使った繰り返し処理を実装。
 配列やハッシュをeachでループしながらデータ操作を復習。
- 07:30 – 09:00
 ハッシュの基本操作を実践。
 値の追加・削除・更新、条件抽出(select,reject)、ネストしたハッシュへのアクセスを学習。
- 10:00 – 12:00
 ログイン機能の概要を理解(Deviseの調査)。
 RailsプロジェクトのセットアップやGemの導入を確認。
この時点では「Deviseを使えば楽勝でログイン機能がつくれる」と思っていたのですが、午後にかけてだいぶ苦戦しました…。
2. 取り組んだ内容
(1) each・map を使った繰り返し処理
- 配列やハッシュを eachでループして表示する課題を解きました。
- mapは「変換後の配列を返す」という違いがあり、コードがスッキリする場面もあることを実感。
rubyコピーする編集するnumbers = [1, 2, 3]
# each
numbers.each { |n| puts n * 2 }
# map
double_numbers = numbers.map { |n| n * 2 }
p double_numbers
(2) ハッシュの操作
- ハッシュに値を追加・更新・削除する方法を復習。
- selectや- rejectで条件に合うデータだけを取り出すことができるのが便利!
- ネストしたハッシュ(ハッシュの中にハッシュ)も、students[name][:math]のようにアクセスできるとわかってスッキリ。
rubyコピーする編集するstudents = {
  "田中" => { math: 80, english: 70 },
  "佐藤" => { math: 95, english: 85 },
}
students["鈴木"] = { math: 60, english: 75 } # 追加
(3) Rails環境構築 & トップページ作成
- rails new myappで新規アプリを作成。
- bin/rails db:create→- rails sで起動し、ブラウザで- localhost:3000を確認。
- rails g controller home index&- root to: "home#index"でトップページを作り、簡単なデザインを- custom.scssで当てようとするも、CSSの反映に苦戦。
(4) Devise を使ったログイン機能導入
- gem 'devise'を- Gemfileに追記 →- bundle install→- rails generate devise:install
- rails generate devise User→- rails db:migrate
- しかし、/users/sign_inへアクセスするとNo route matches [GET] "/users/sign_in"のエラーに…。
- devise_for :usersが- routes.rbに書いてあるのにルートが反映されず、- rails routes | grep usersで何も表示されない状況に。
- 原因不明のルート設定トラブルで足止めを食らい、ログイン画面を拝めずに午前の学習時間が終了。
3. つまずきポイント & 対処法
- CSSが反映されない
- application.scssと- custom.scssの設定やファイル名の拡張子に注意。
- @import "custom";を書く場所や- application.cssを- application.scssにリネームする作業を忘れがち。
 
- Deviseのルートが表示されない
- devise_for :usersを- routes.rbに書いているのに、- rails routesに反映されない。
- 原因としては Railsの再起動忘れ、Gemのインストールやマイグレーションが不十分 などが考えられる。
 
- サーバーが起動中のポート競合
- A server is already runningのエラーが出たときは、- kill -9 <PID>や- rm tmp/pids/server.pidでプロセスを強制終了。
 
4. 得られた学び
- 問題の切り分けが大事
- 「ルーティングが悪いのか?Gemが悪いのか?ファイル名か?」といったポイントを1つずつチェックする。
 
- SCSS と CSS の拡張子の違い
- Railsのアセットパイプラインでは、.scssを使うならapplication.scssにリネームする必要がある。
 
- Railsのアセットパイプラインでは、
- Gemfile の更新後は bundle installを忘れずに- Deviseなど、新しくGemを入れたら必ず bundle install。
 
- Deviseなど、新しくGemを入れたら必ず 
5. まとめ & 明日への方針
午前中の学習は 「基礎文法のおさらい」 と 「ログイン機能の導入」 を進めたものの、想定外のエラーに手こずりました。
特に Deviseのルートが生成されない問題 は午後まで持ち越しになりそうです。
明日の目標
- Deviseルート問題の解決
- rails routes | grep usersでルートが出るようにする
- /users/sign_inにアクセスしてログイン画面が出る状態に
 
- CSSの微調整
- もう少しBootstrapやSCSSでデザインを整えたい
 
- 各機能の完成度を高める
- トップページを整えて、アプリらしく仕上げる
 
あとがき
苦戦したものの、エラーと向き合った分だけ理解も深まりました。
今後は 「エラーが出ても、どこを疑えばいいのか?」 を冷静に探れるようにしたいです。
同じようにログイン機能でつまずいている方がいれば、ぜひコメントやSNSで情報交換しましょう!
それでは明日もコツコツ頑張ります!
 
  
  
  
  

コメント