Ruby on Rails チュートリアル やってみてる ~3章~

どうもです。今回で第3章。

前回2章を終わらせた際に「3章はマークアップ的なことかなぁ」って言ってたんですが、確かに見た目に関するところはあったんですが、主旨は全然違いました。

3章結構疲れました。
ですが、これからやる人はその長さから落胆しないでください。上級者向けの内容(やらなくていい箇所)やこのチュートリアルの推奨環境以外でやっている人向けのアドバイスも相当あったり、
あとはいろんなツールをインスコしたりな内容なので、グイグイ進めようと思えばいけます。
というわけで自分的まとめを始めます。

3章の概要

第3章 ほぼ静的なページの作成

RSpecでテストを先に書いて実行して失敗させ、テストに書かれている内容をHTMLでtitleとbodyに少し書いてテストを通すというところまでをまずは行う。

その後、複数あるページで重複している部分があるのがよろしくないとし、効率の良いコードに「リファクタリング」していく。

最後にコードに変更があったら自動的にテストを行っていくツールを入れたり、テストの実行速度を上げるツールを入れたりとかした終わり。だったかな。

 

ハマったところ

  • 3.2.1 テスト駆動開発

初めてテストを回す時にテストがコケたエラーじゃなくて、

undefined method `visit' for #<RSpec::Core::ExampleGroup::Nested

みたいなエラーが出た。
調べたら「spec_helper.rbのRSpec.configureの中にconfig.include Capybara::DSLを書くとうまく動きます。」だそうだ。なんで書かれてなかったんだろう。保存し忘れかな。
Capybara + Rspecでvisitがundefined methodと言われたときの対策 - Qiita

解決した。

 

  • 3.2.1 テスト駆動開発

その後、解決と思いもう一度テストを叩いたら

初めてテストを回す時にテストがコケたエラーじゃなくて、

require': cannot load such file -- 

みたいなエラーが出てる。
調べると「Gemfileに'rspec-rails'は入っていますかね? 記述しただけでなく、bundle install と rspecの設定は完了してますか?」と言われてる人がいたので見てみたら僕も入ってなかった。 なんで入ってないんだろう。。。保存し忘r

Railsチュートリアルの第3章のRSpecの設定時にエラーが発生してしまう。(5667)|teratail 

解決した。

 

  • 3.3.3埋め込みRuby

別にハマってないんだけど、”yield”の読み方が気になった。今後yieldが出てきた時になんて呼べばいいんだ。まさかアルファベットで読むわけにはいかないだろう。

yield:なんと読む? - A Day In The Life

解決。

 

  • 3.5 演習

Contactのページを追加するだけなんだけど何度もコケた。スペルのミスだったり、すべての必要なファイルにContactを追加できていなかったのが原因だった。
演習は解説や正解のコードも書かれてるから他のhomeやaboutを作った時と同じ要領で追加していけば問題なくできるので焦らない方がいい。

 

  • 3.6.4Sublime Text上でテストする

あと、Ruby on Rails関係ないかもしれないけど、Sublime Textでテストを実行できるようにする設定をする時に
Library/Application\ Support/Sublime\ Text\ 2/Packages

にターミナルで行こうとしてもいけない。lsしてもApplication Supportの下にSublime textがいない。Finderではいるのに。

で、調べたらFinderで開いてるディレクトリをターミナルの新規ウインドウで開く方法があったのでやってみたらちゃんとターミナルで開いた。開くじゃないかよ!!

Mac Finderで開いているフォルダをターミナルで開く方法 | memobits 

解決。

 

感想など

あんまり関係ないのかもしれないけど、SublimeTextでカレントディレクトリを開いた時にエディタの左側にディレクトリ構造が出てきてビックリした。普通なんだろうけどさ。今まで知らなかったから便利で驚いた。IDEっぽくなるんだね。

f:id:yuruihito:20150131185338p:plain

3章ではRSpecで初めてテストを書いてみたんだけど、まだ簡単な見た目だけのテストなので、画面遷移や要素の細かいテストの仕方が出てくるのが楽しみだなと思った。

少しテストを書き始めたくらいのところでタイムリミットというか疲れて一旦やめ、翌日残りを終わらせた。
最初に書いたようにグイグイ進められるとは思うけど、やはりボリュームは増えてきていると思う。
4章は「Rails風味のRuby」だそうだ。なんだそりゃ。「カレーライス風味のカレー」みたいな感じかな。
3章同様にボリュームが多いかもしれないけど、無理せず進めていこうと思う。モチベーションはまだ健在でござる。
ではでは。

Ruby on Rails チュートリアル やってみてるシリーズ:

はじめに

第1章 ゼロからデプロイまで

第2章デモアプリケーション

第3章ほぼ静的なページの作成

第4章 Rails風味のRuby

第5章レイアウトを作成する

第6章ユーザーのモデルを作成する

第7章ユーザー登録

第8章サインイン、サインアウト

広告を非表示にする