読者です 読者をやめる 読者になる 読者になる

東村山1丁目 diary

渋谷のIT企業から波佐見焼の会社へ転職!Webディレクション・デザイン・ECなど仕事の話から、食事や映画の感想まで。

Rails Girls More! @株式会社万葉 第2回(通算3回目)に参加してきました。

f:id:higashimurayama1:20121203000957j:plain

今回の教材はこちら!

- 第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ディベロッパーツールで確認したりしました。

f:id:higashimurayama1:20121204223705p:plain
▲Form Dataをチェック!

午後の課題は

  • CRUD基礎復習とデバッグのやり方
  • SASS
  • おみくじアプリ制作(ControllerとViewのみを使ったシンプルなアプリ)
  • GoogleMAPを使ったアプリ制作
  • TryRuby

の中から選べて、私はイガラシコーチ組のおみくじアプリ制作をやりました。

冒頭の資料がそれなのですが、イガラシコーチの資料がとにかくわかりやすくて感動しました!
自分でもっかいまとめ直すと大体こんな感じ。(Rubyのクラスの部分のみ)

■アプリ制作の手順

  1. Rubyでおみくじクラスを作る
  2. Railsでアプリを作る
  3. アプリにおみくじクラスを組み込む

■おみくじクラスの要件
以下の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で挙動を確認してから実装したので、より理解が深まりました。

講義・実習はもちろんのこと、参加者のみなさんとランチでお話ししたり、おいしいお菓子を満喫したりと、今回もとても楽しく有意義な時間を過ごす事ができました。
ありがたや・・

はー、いっちょめいっちょめ。