Rails Tutorialの勉強記録(Review) Chapter3

Ruby on Rails Tutorialの復習の記録.今回はChapter 3です.

Chapter 2は飛ばします.

Chapter 3から本格的にTwitterのcloneであるSample Appを作ります.この章ではまず静的なページを作りました.

まずはcontrollerの作成の方法を学びました.`rails g controller <ControllerName> <action1> <action2> ...`というコマンドを使うことで,指定したactionをもつcontrollerを生成します.controllerの名前やactionの名前を間違えた場合は,`rails destroy`でやり直しができます.

今回は,静的ページということで,`StaticPages`というcontrollerを作りました.

rails generate controller StaticPages home help

これにより,自動でcontrollerとそれに対応するview,test,routeの設定がされます.

`config/routes.rb`には

get 'static_pages/home'
get 'static_pages/help'

が追記されます.これで,`static_pages/home`にアクセスすると`static_page_controller.rb`の`home`アクションを呼び出してくれます.そして,それに対応するviewを用いてHTMLをrenderingします.

renderingする際に`app/views/layouts/application.html.erb`が共通のレイアウトで,`<%= yield %>`の部分に対応したviewが差し込まれます.

また`<title>`タグをページごとに変更したいが,共通部分があるので,一部分だけ動的に変更するように`provide`メソッドと`yield`メソッドを使いました.

`provide(:title, 'home')`のように定義すると,`yield(:title)`でhomeという文字列を返してくれます.なので共通のレイアウトである`app/views/layouts/application.html.erb`の`<title>`タグを`<%= yield(:title) %> | Ruby on Rails Tutorial Sample App`で囲んで,対応するviewで`provide`メソッドを`<% provide(:title, 'home') %>`のように呼び出せば動的にタイトルを変えることができます.

ここで`<% %>`と<%= %>`の違いですが,`=`がついている場合は返り値をHTMLに出力します.一方で`=`がないものは何も出力しません.

最後にtestについてですが,`assert_select`を用いてHTMLタグの要素が存在するかをチェックするのと`assert_response`で正しいresponseが返ってきているかをチェックするコtestを書きました.




この記事が気に入ったらサポートをしてみませんか?