【Ruby初心者ど素人】エンジニア養成スクール学びメモ

本文中の仮説部分は外れのときもあり教材のキャプチャは著作権と情報漏洩の関係で載せていません

【事象】作成したテーブルを削除したい

【事象】作成したテーブルの削除したい

解決したいこと

不要なテーブルを削除したい

解決策

手順:モデルの削除→テーブルの削除

今回はtagsという名前のテーブルを削除したい (Sequel Proschema.rbを確認して削除したいテーブル名がまだ残っていることを確認)

対象箇所 

まずはモデルを削除する

tagsと関連しているモデル、models/tag.rbが存在していることを確認。

対象箇所 

rails destroy model 削除したいモデル名を実行

今回はmodels>tag.rbなのでrails destroy model tag

対象箇所 

モデルが削除されていることを確認

対象箇所 

削除用のマイグレーションファイルを作成

今回はわかりやすくdelete_tableというマイグレーションファイルにしました。

rails g migration delete_table

対象箇所 

作成したdelete_tableというマイグレーションファイルにdrop_table :削除したいテーブル名を記入。 今回はtagテーブルを削除するので以下の記載

drop_table :tags

対象箇所 

bundle exec rake db:migrateを実行

schema.rbからもテーブルが消えていることを確認。

対象箇所 

念のためSequel Proでも削除されていることを確認。

これでもうまく行かなかったら、まだそんなにテーブル作成していない状態であればrails db:migrate:resetマイグレーションをきれいにしてしまって削除した方が早い。

【事象】リンク先に遷移しない(エラーが出る)

解決したいこと

リンクをクリックした際にRouting Errorエラーがでる

Routing Error
No route matches [GET] "/groups/create"

対象箇所:見た目 

仮説

ルーティングまたはviewファイル記述ミスまたは作成時点ファイルが足りない

試したこと

rake routesでPrefixを確認

Prefix 

解決策

URI Pattern をリンクhamlに記述していたが、rubyではPrefixを記述すればよい

リンクの書き方 

【事象】マイグレーションを実行するとエラーがでる

解決したいこと

マイグレーションを実行するとエラーをがでる

bundle exec rake db:migrateでエラー

bundle exec rake db:migrateでエラー

仮説

Gemfile.lock内のBUNDLED WITHのパージョンが違う

解決策

Gemfile.lock内を確認

2.1.4であることを確認

2.1.4であることを確認 

2.1.4をアンインストール

2.1.4をアンインストール 

記載してある2.5.1をインストール→インストール不可

インストール不可 

もう一度2.1.4をインストール

もう一度2.1.4をインストール 

js以前の初歩的ミスについて

javascriptの内容で困ったこと

問題

テキスト通りに記述しているのにコンソールエラーが出る

詳細

ふむふむ何やらjsファイルの5行目に問題が。(スペルミスかしら)

エラーメッセージは…

Uncaught TypeError: Cannot read property 'addEventListener' of null

ふむ。やはりどこかで記述のミスをしたのだろう。

テキストのコードを丸コピーして解決!

 

と余裕こいていたけれど、解決されず。

 

次の思考

これはきっとHTMLに何か追記せよとか、サラッとテキストに書いてあったのだな。

テキストをもう一度読んでみる。

結果

…特にHTMLファイルをいじることは書いておらず。

 

その次の思考

なんだかんだで先に進めば解決するかもしれないしちょっとエラーはシカト。

結果

解決されない。

その次の思考

おかしいなちゃんとテキスト通りにやっているのにと思いつつ、スクロールを上に下にとコロコロコロコロ(マウスではないけど)

 

ん?

んん?

この二文、同じようで何かが違う。

 

これまでの流れだと、【書き換えてください】と書いてあったので、毎度毎度書き換えていたのですが、【書き加える(追記する)】のだったという単純なミスでした。

結果

解決しない。まさかの。

ここまで期待持たせておいて解決しないとかもー。

その次の思考

あ、もしかして、あるあるで閉じタグ間違ってるんじゃないの?

じーーーーー。

明らかに間違えてます。

 ・・・・・
・・・・
・・

修正してみる。(functionで優しく包んであげる)

エラー消えました。

 ・・・・・
・・・・
・・

挙動も思い通りになりました。

 

あとは、整形(コマンドA+コマンドK+コマンドF)して終了 

目が刺激されるから黒いエディタ苦手

教訓

テキストはしっかりと読む

きれいなコード・ソースとは

 本日の学び

*1

  • 見やすいソース=見やすいコピー・文章
  • コードの意図=コピーの意図
  • 削る勇気

本日の失敗

頭がモヤモヤしていて集中出来なかった。
(対策として考える物は飛ばして進めた)

リファクタリング補足

システム開発時のディレクタからの視点

この記事の前提:
バックエンドに関するリファクタリングは全くもって素人の人物が書いています。

 

こちらはとても使い勝手の良い言葉で、エンジニアからのレスポンスで「リファクタリングしてます。」と返ってきたら要注意です。

エンジニアが気晴らしもしくは逃避している時に使います。

基本的にリファクタリングは都度もしくはタイミングを決めて行うものなので、思い立ったようにリファクタリングする場合は「あ、進捗悪いんだな。」という認識でいます。

ネクストステップ

  • もやもや(仕事系)を取り払うために上司と話をする
  • 自己肯定感を高めにというライフコーチの言葉を忘れない

 

*1:きれいなコード・ソースに関する詳細は色々なブログを閲覧した方がためになります。