Railsチュートリアル3章 つまづきポイントまとめ

プロゲートをクリアした程度の能力だとどんなところが苦労するのか、ということをまとめていきます。
ただのクレームのように見えるかもしれませんが、解決できたところにだけ書いています。不満だけ発信したって生産的ではないので(^ ^;)
自分のような初心者もですが、教材を作っているような強い方々に初学者はどんなところで躓くのかを知ってもらえたらと思います。

Herokuに反映されない

前回Hello Heroku!するだけでもそこそこ苦労しましたが、3章冒頭でもつまづきました。
3.2
masterブランチで作業するのではなくトピックブランチを作成してそこで作業するのが良い習慣だ
ということでブランチを作成するのですが、いざgit push heroku しても反映されない。変更をMasterブランチにマージしてないから更新されないんですが、そのへんの説明がされてないしエラーが出るわけでもないので原因を探るのにかなり時間を割いてしまいました。
原因はGitなんですが知識がないのでGitだというあたりもつけられません。ということで原因を特定するためにとりあえず知識があやふやなGitを勉強し直すことにしました。遅かれ早かれGitは覚えなきゃいけないので無駄にはならないはず。
結局自分の理解では特定できずググっていたら似たような問題がteratailにあったので解決できました。

解決:サルでもわかるGit入門がわかりやすい

突然しらない単語を当たり前のように使いだす

3.3.3で突然"~次のようなのようなヘルパーが使えます"という文がでる。
ヘルパーってなんだっけ?と思って検索したけどここが初出でした。知ってて当然の用語なんだろうか?文脈からだとtestを書く際に使用する変数みたいなものかと思いましたが、念の為ググってみたらRailsに備わっているライブラリのようなものでtestに限ったものではないようです。
同じようにテストスイートという言葉も使われていました。こちらは"複数のテストのまとまり"の事のようです。
難しいのではなく単純にわかりにくいだけなんじゃないかと

そのほかはプロゲートをやっておけばあまり躓く様な部分はありませんでした。
やはりRails以外の部分で立ち止まる印象です。

3章の要約

記事が薄いのでここからは要約をまとめました

$rails g controller hoge fuga で作成した一連のファイルは
$rails destroy hoge fuga できれいに削除できる

$rails db:migrate は
$rails db:rollback で一つ前の状態
$rails db:migrate VERSION = N で任意のバージョンに戻れる

コントローラーのテスト
test/controllers/コントローラー名 + _test.rb に記載
先に失敗するテストを書いて次にそれをパスするコードを実装する開発方式をテスト駆動開発(TDD)という

テストの結果に色を付ける
test/test_helper.rb に
require "minitest/reporters"
Minitest::Reporters.use!
を追記

Guardを設定すれば必要なテストを自動実行してくれる。
$bundle exec guard init
生成されたGuardfileを編集する。Cloud9環境の場合はGuardの通知を有効にするためtmuxをインストールする必要がある。
$sudo yum install -y tmux
Guard使用時はGitとspringが競合するので.gitignoreファイルにspring/ディレクトリを追加する
設定が終了したら次のコマンドを(別ターミナルで)実行。
$bundle exec guard
ctrl + cで終了。


プロセス上の動いているシステムを見つける $ps aux
$ps aux | grep spring
とすると起動しているspringサーバーをみつけられる
springサーバーはRilesの機能。Testを実行するときにSpringサーバーが起動するが、多数残留することがある。そんなとき上のコマンドで探してkillする。
同じようにタブを閉じてしまった際は grep serverにすれば見つけられる

コメント