コミュ障だから明日が僕らをよんだって返事もろくにしなかった

何かを創る人に憧れたからブログをはじめたんだと思うよ

社会のボトムズがRailsに手を出す #3

これまでのあらすじ

Toyアプリケーションというミニブログっぽいアプリケーションを作った。これからの話と全然関係ないのですが、トイプードルのトイっておもちゃとかいう意味でなくて小型のっていうサイズをあらわす単語だったんですね。へー。

前回記事
inujini.hatenablog.com



静的サイトをつくろう

はい、ということで本格的アプリケーション開発第一段ということで静的サイト制作です。静的サイトとかは僕が普段から量産しまくってるジャンルなんでサクッと終わらせたいところ。じゃあやっていきます。

まずは何はともあれコマンドを叩いてコントローラ作って、ルーティングファイルとその関連ファイル生成とか紐づけできるようにします。ぶっちゃけ何が生成されているのか知らんけど以下のコマンドで何も記述することなくできるそうです*1

$ rails generate controller コントローラ名 アクション

そんで生成したコードをなんやかんやいじってうやると以下のように表示されるとのこと。

f:id:andron:20190106202046p:plainf:id:andron:20190106202048p:plainf:id:andron:20190106202049p:plainf:id:andron:20190106202051p:plain

パス 説明
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……(ここで文章は途切れている。



次回へ続く……。

*1:ログに出てるcreate部分を追えばいいんですけど、いかんせん大量に生成されるので必要にかられない限り読む気がおきない……

*2:チュートリアルの有料化みたいな流れを感じ取ったら修正ソース掲載とか加えるかもしれない。それまではまあいいよね。