Rails Girls More! @株式会社万葉 第2回(通算3回目)に参加してきました。
今回の教材はこちら!
- 第22回 2012.11.22 画像投稿アプリとCRUD基礎
https://speakerdeck.com/igaiga/railsjiang-yi-di-22hui-hua-xiang-tou-gao-apuritocrudji-chu
- 第24回 new&create
https://speakerdeck.com/igaiga/railsjiang-yi-di-24hui-new-and-create
- 第18,19回 2012.10.18,25 Rails基礎 おみくじアプリつくり
https://speakerdeck.com/igaiga/ruby-on-railsjiang-yi-di-18hui-di-19hui-railsji-chu
午前中はオダギリコーチによるRails講義、午後は各コーチについて課題をやりました。
Rails講義では、scaffoldで作られるCRUDの処理の流れを丁寧に見て行きました。
Railsアプリがリクエストを受けてレスポンスを返すまでをrake routesコマンドやchromeのディベロッパーツールで確認したりしました。
▲Form Dataをチェック!
午後の課題は
の中から選べて、私はイガラシコーチ組のおみくじアプリ制作をやりました。
冒頭の資料がそれなのですが、イガラシコーチの資料がとにかくわかりやすくて感動しました!
自分でもっかいまとめ直すと大体こんな感じ。(Rubyのクラスの部分のみ)
■アプリ制作の手順
■おみくじクラスの要件
以下の3要素がランダムで表示される
- おみくじ(大吉/中吉/吉/小吉/凶)
- ラッキーカラー(赤/青/黄/緑)
- ラッキーな方角(東/西/南/北)
■おみくじクラスを作る
・omikuji.rbを作ってOmikujiクラスを作成
■omikuji.rb解答例
#coding:utf-8 class Omikuji attr_reader:name,:lucky_color,:lucky_direction def initialize @name = ['大吉','吉','中吉','小吉','大吉','小吉','吉','中吉','凶'][rand(9)] @lucky_color = ['赤','青','黄','緑'][rand(4)] @lucky_direction = ['東','西','南','北'][rand(4)] end end
■解答例に行き着くまでのomikuji.rbその1
# coding: utf-8 class Omikuji def name ['大吉','吉','中吉','小吉','凶'][rand(5)] end end
※配列からランダムに結果を取り出すだけのシンプルなコード。
omikuji.nameを呼び出すと都度違う結果が表示される。
■解答例に行き着くまでのomikuji.rbその2
# coding: utf-8 class Omikuji def initialize @name = ['大吉','中吉','吉','小吉','凶'][rand(5)] end def name @name end end
※クラス(Omikuji)をNewするとinitializeメソッドが呼ばれる。
そうでなければomikuji.nameに同じ結果を返す。さらに、
def name
@name
end
の部分をattr_readerで代用したものが解答例。
こんな感じで、最低限必要なことしか書かれていないソースに後から要素を足したり、インスタンス変数を使って整理し直したり、別のファイルにソースを移したりなどして形を作っていきました。
Rubyのスクリプトを埋め込む前にirbで挙動を確認してから実装したので、より理解が深まりました。
講義・実習はもちろんのこと、参加者のみなさんとランチでお話ししたり、おいしいお菓子を満喫したりと、今回もとても楽しく有意義な時間を過ごす事ができました。
ありがたや・・