これまでのあらすじ
Toyアプリケーションというミニブログっぽいアプリケーションを作った。これからの話と全然関係ないのですが、トイプードルのトイっておもちゃとかいう意味でなくて小型のっていうサイズをあらわす単語だったんですね。へー。
静的サイトをつくろう
はい、ということで本格的アプリケーション開発第一段ということで静的サイト制作です。静的サイトとかは僕が普段から量産しまくってるジャンルなんでサクッと終わらせたいところ。じゃあやっていきます。
まずは何はともあれコマンドを叩いてコントローラ作って、ルーティングファイルとその関連ファイル生成とか紐づけできるようにします。ぶっちゃけ何が生成されているのか知らんけど以下のコマンドで何も記述することなくできるそうです*1。
$ rails generate controller コントローラ名 アクション
そんで生成したコードをなんやかんやいじってうやると以下のように表示されるとのこと。
パス | 説明 |
---|---|
config/routes.rb | ルーティング |
app/controllers/***_controller.rb | 生成したコントローラ |
app/views/コントローラ/***.html.erb | テンプレート |
まあ、なんやかんやとか言ってると後でどこ修正してるのか分からなくなるので一応最低限どこ修正したかのパスと説明書いておきます。完全に自分用メモレベルだ…。
実際今のところ、ソース全然いじってないし載せる必要ないよね*2?元のコードは全編英語テキストの文章なんですけど、完全な丸写しだとなんかやった感がなかったからせめてものあがきとしてテンプレートの方を好き放題記入してます。内容はERBの使い方分かってれば表示できる感じです。特に悩みどころはないと思う。ただ、上から読んでると修正をいったりきたりさせられる構成なんで、写経っぽいことやりながら読んでいる分にはメンドクサイ。
# テストの実行 $ rails test
そういえば上のコマンドでテスト実行できるんですね。まあできるって言ってもテストコード書かなきゃいかんのですけどね……。ただ、一応よく使うと思われるやつはassert_***
で対応できるっぽい。
# test/controllers/static_pages_controller_test.rb # 一部抜粋 require 'test_helper' class StaticPagesControllerTest < ActionDispatch::IntegrationTest def setup @base_title = "Ruby on Rails Tutorial Sample App" end test "should get home" do get static_pages_about_url assert_response :success # assert_select "title", "About | #{@base_title}" end end
参考
Rails テスティングガイド | Rails ガイド
とまあ三章の内容はそんな感じです。CSSもいじりたかったんですけど、それに関しては四章にそれ関連のレッスンがあるっぽいので次回見栄えを整えていこうかと思います。
第三章の感想
三章は静的サイトの作成とテストをやってみましょうみたいな内容なんですけど、テストの方はいまいち恩恵を感じない。assert
をうまく使えるような設計があれば楽しいんだろうけど、今のところ作業的な実装しかなくてつまんn……(ここで文章は途切れている。
次回へ続く……。