---
# System prepended metadata

title: Railsの分析 2020/11

---

# Railsの分析 2020/11
[Gitはこちら](https://hackmd.io/3Vbx6nxSS86xtHYdWtM9Pg)

## 11/10
### 前提
期間: 10/01 ~ 11/09
RubyonRails + 基礎知識学習フェーズのみ
（DWC、オンラインは確実に混ざっています）

```
ストレージ不足、継続課題、マージブロック、明らかな2ヶ月目以降の内容を除いています

総質問数： 1613
---
以下ワードを含むもの
spec： 94（"r spec"など、rspecでは誤字が散見されたため）
テスト： 127（specと一部重複はしている）
バリデーション： 80
コメント： 24（コメントアウト：4件を除く）
book： 393

※Gitのときもなのですが、キーワード絞ったあとに「ほんとに総数1600件もあるの？？」と疑ってしまいます...
```

```
【GDPのデータ】
 [9月] 1118件          40名?
   ↓   - 397件
[10月] 721件（35.5%↓） 35名？
```


### 前月比で減った要因
シート上で分析しているのが10月分～で、9月以前分は手動で一覧遡らないと見えず（[例](https://web-camp.online/admin/questions?admin_question_status_id%5B%5D=4&learning_phase_id%5B%5D=1&page=80&student_id=&student_name=)）、
正直確実なことが言えない状態です...
以下割と主観入っていますので参考程度でお願いします。

- ver2配布：DWCが9/1～、オンラインが10/1～。
  - そのため、9月はまだvagrant関連の質問は残っていた。（新宿、オンライン）
  - 10月以降は基本的にオンライン生の一部と、延長生と、2ヶ月目以降（あっても1,2件）と限られるようになった
    - 実際「vagrant」を含む質問は17件（全質問の1%）になっている
  - いずれは0になるはず、ただし代わりにCloud9の質問があるが、vagrantほどの量ではない。
    - 今回「cloud9」は6件。
  - また、環境構築で詰まることが少なくなり、事前学習がよりスムーズに進んだのではなかろうか。（願望）
    - 期限内提出がざっくり50%くらい...あれそうでもないのか :cat2::comet:
    - 延長は渋0難3新4（うち難1新3は2ヶ月以上延長）
- form_with化のついでに、ハイライト徹底を始めちょこちょこ手を加えたので、ver1時代よりは見やすくなっていたのであれば嬉しいのですが（願望②）
  - 「カリキュラムの○○で、記載されているコードをどこに追加するのかわからない」のような質問はほぼ見受けられなかった。
- **これらだけで400件も減らないと思うので何か別の要因があるはず...**
  - 余談ですが、11月現時点で応用1の質問は激減していますね（片や2が既に倍増しているorz）
- メンターの対応改善もあるかも？



### 現状
・エラーと言っても様々
```
エラー： 728
  - error： 260
    - argument： 11
    - constant： 15（= uninitialized constant）
    - NoMethod： 82
      - for nil： 26
    - Pending： 11（= pending migration）
    - RecordNotFound： 26
    - syntax： 20
    - 上記以外: 約170
```

→ 「カリキュラム通りにやったのにエラーになった、わからない」という質問は、できるだけ「カリキュラム通りにやったのにエラーになった、**○○というエラーだったので調べてみたが**わからない」と、何かしら解決しようとした上の質問にステップアップさせたい

・上記に関連しますが、受講生に配っている資料（[こちら](https://docbase.io/posts/1466014/sharing/763bf2ef-16b0-449f-9019-61d2a547a73e)）内の質問テンプレの使用件数はわずか3件です。（10月:1 / 11月:2 / 「試したこと」だと11件でしたがいずれにせよ全体の1%にも満たない）
読んでいないんだろうなー...、リアクションが他の投稿に比べると少ない（※）
11月に既に1件あるのですが、「言語化が難しいので詳しくは口頭で」はまれによく見ます。
上記資料、CMSに埋め込んではどうかなと思いますがどうでしょう。（詳細はNextにて）

※dwc_jnn_202011に配り忘れてそうです
＆ PROは日付バラバラ？と思うので、個人チャンネル等あるか存じませんが、いつでも見返しやすいCMSの方が効果は見込めると思います。


・「`params[:post_image_id]`の説明が欲しい」が9件。こちらは前々から補足したいと言っていたところではある


### Next
提出課題関連以外の質問を減らす、ハイライト以外の方法がないか検討
（結果としてエラーとの向き合い方を習得させることなので、提出課題でのエラーにも向き合いやすくなり、結果そちらの質問数も減らすことができるとは思います。）


#### 【Railsを学ぼう】でわざとエラー起こしながら進める
- メリ
  - わざと起こすのであれば全員が同じエラーを見ることができるので、エラーの意味・解法を説明しやすい。
  - 一度は見たという状態が作れ、同様のエラーに対処しやすくなる。
  - エラーと友達になりやすい（？）
- デメ
  - 確実に長くなる。/ 工数かかる。
  - 解法通りにやってもエラーになったときにより嫌な気持ちになりそう。
  - 書いていないエラーが起きた時に投げやりになりそう。
  - さすがに全章でsyntax起こすとかは不要と思いますが、それでも起こり得るエラーを全網羅しようとするとキリがない。


#### [DWCでの学習の仕方](https://docbase.io/posts/1466014/sharing/763bf2ef-16b0-449f-9019-61d2a547a73e)相当のものをCMSに追加（入れる場合の場所は要検討）
- メリ
  - 質問前に調べる姿勢は付きやすい。
  - 状況整理をすることで早期解決が見込め、後続の学習がスムーズになる。
  - 書いているうちに「前に同じ状況なったことあるわ」みたいなこともあり得るかも。
- デメ
  - テンプレに沿って書くのめんどい。
  - 質問のハードルが上がる。

#### 上記資料の一部を『エラーが起きた時の対応集』に吸収させてアップデート
『エラーが起きた時の対応集』の中に『Railsエラー集』を内包して、【Railsを学ぼう】に移管するとか（もちろんCARAVAN→sample_appは必要になる）

---

## 11/18
### 分析
- 多かった箇所：[Rails] 4,5,7 / [アプリ2] 3,4
- 詳細画面のカリキュラムでRecordNotFoundの説明を加えたことは効果があったと思われる。該当箇所では2件のみ
- アプリ1-2で`The asset "img/forest.jpg" is not present in the asset pipeline.`が4件
  - 内訳にも書いたが、imageフォルダ内にimgフォルダを配置することが、手順として不安になってしまうのかもしれません
- サーバー再起動忘れは依然として見受けられる。
- 以下要確認リスト
  - Rails 7章でNoMethodErrorが9件あるが、原因が不明
  - 削除機能 + RecordNotFoundが一定数あった。
    - リダイレクト先にミスがあると思われるが、正直追記内容的に想定できないため謎。
    - 既にRails 8章では「正しくリダイレクトできなかった場合は」を記載している。
    - エラー集にRecordNotFoundを追加する？
  - `A server is already running.`はEducateのセッション切れに因るもの？
    - にしては質問数は少ない（3件）が、対処法を直接は書いていないので気になった
  - Cloud9のブラウザエラー画面を説明すべきか（質問はどちらも2件ずつ）
    - `Oops VFS connection does not exist`
    - `No application seems to be running here!`
  - 質問はなかったが、アプリ1-7章で完成コード以下に記載されているエラーは起こる？
  - アプリ2-2章でコマンドミスをした際の対処法を説明すべきか


<details>
<summary>結果の内訳</summary>
<div>

```
★：11/18時点で11月生からの質問が0

## Railsを学ぼう  ※章番号はver2以降準拠
(2) 4
   - URLとか作業ディレクトリとかそういう小物
(3) 2 ★
   - puma立ちっぱと何かのバージョン違い
(4) 9（No.47,55は同一）
   - Unknown attribute, uninitialized constantなどバラバラ
(5) 11 ★
   - 半数がコントローラ作成忘れに因るもの。4章で作成しているはずだが...
(6) 3
   - コードの意味とタイポ
(7) 20
   - No method errorが多い。3376は@listsにしているとかのような
(8) 4
   - 削除機能+RecordNotFoundが一定数あるが、リダイレクト先に設定している訳ではないので原因が謎...
(9) 1 ★
   - 振り返りなのでコードの意味のみ
(10) 1 ★
   - インスタンス変数とブロック変数の違い


## アプリ1
(0) 1
    - Gitがインストールできない？
(2) 4
    - app/assets/images/imgというフォルダの構成ミス（images/xx.pngとかしてそう）
(3) 5
    - コントローラ作成コマンドのミスが半数以上。
(4) 2
    - どちらもサーバー再起動忘れと思われる
(5) 2 ★
    - RecordNotFound、直下に書いている。追加してからは減ったはず。
(6) 2
    - コードの意味
(7) 2
   - ここでも削除機能+RecordNotFound
(エラー集) 1
   - 標準出力のコマンド？たぶん分かっていないだけ


## アプリ2
(2) 5
    - コマンドミスした際の対処法についての質問が多い。
(3) 16
    - 具体的なエラー内容が定まらず。
(4) 24
    - コードの意味についての質問が半数以上。
(5) 2
    - たぶん凡ミス
(6) 1 ★
    - コードの意味
(7) 1 ★
    - たぶん凡ミス
(8) 2 ★
    - cssのタイポ
```

</div>
</details>


---

## 12/4
- Rails 5章
  - 4章時点で「ここまでできましたね」という感じの確認を挟む
    - 例：○○（ファイル名）が無い場合はx章のどこどこまで確認しましょう
  - コントローラを間違えて作っているとか？
- Rails 7章
  - No method errorの原因は依然謎
    - おそらくRuntime解決後なので、どこかタイポ？
    - 細分化するにもちょっと難しそう
    - 「一気に作業したのでよくエラーが起こります。エラーが起きた際はこちらを確認してみましょう」のような導線をはる
      - エラーを自分で調べるきっかけにできる
- アプリ1
  - Railsを学ぼうのほぼ反復なので、質問数が少ないと思われる
  - Railsを学ぼうにある説明の一部をアプリ1に移動させてもいいかも
    - 効果得られなかったときの対応
- アプリ2
  - bootstrapの概念についての説明拡充（from アンケート）
  - 1:Nの関係
    - `has_many`, `belongs_to`ってなんぞ（英語ワカラナイ的な）
    - 3章の前に上記説明を加える
    - 1章の内容を、Railsに落とし込むやり方があまりわかっていない
    - [こういうの](https://hackmd.io/H_QbEf8mTPKiewiyN2PCLg)（自作）
  - いいね・コメント機能
    - メンターにどう対応しているかヒアリング
    - 本田個人としては、sample_app, CARAVANでやったことをベースに段階踏んで作らせてはどうかと思う
      - 「誰のコメントか」「どれに対してのコメントか」を追加するために何を追加するのかを説明
      - 3章時点でちょっと不足気味ではあるので可能であればそちらも
    - 手順よりは概念を動画化した方が管理しやすい
      - なにをするのか → なぜするのか
  - 2章でのトラブルシューティング（上より優先度低）
    - 設定と実装を分けるとか
    - ここまでは「コマンドミスでエラー出て止まる」だったが、当章では「コマンドミスでも進んでしまう」ので厄介
    - コマンドミスからのリカバリーは学んでほしい
    - deviseについての補足コンテンツ？
- Cloud9のエラー画面は検討（必然的に起こるものではない）


## 引継ぎ
目標：ひと月分を半日で分析

良い分析ツールないか
-AWS
-森川さん
-etc