rails tutorial ch1-2
DESCRIPTION
Ruby on Rails 3 Tutorial の chapter 1&2 の要約です。 by @yasulab http://flavors.me/yasulabTRANSCRIPT
Ruby on Rails 3 TutorialChapter 1 to 3
@yasulab
2011年9月3日土曜日
Ruby on Rails 3 TutorialChapter 1 to 3
@yasulab
2011年9月3日土曜日
Ruby on Rails 3 TutorialChapter 1 to 3
@yasulab
2
2011年9月3日土曜日
内容• Ruby on Rails 3 Tutorial (Ch. 1to3)
• Web (Free)
• http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
• 対象は初心者
• Ruby/Railsを知らないことが前提。
• 経験者は章末にあるExerciseをやってみるといいかも。
2011年9月3日土曜日
本書の特徴• Rails 3にデフォルトで備わっていないものの、非常によく使われるツールを使った入門書。
• 例:Rspec, Git, GitHub, and Heroku
• Microblogの開発を題材としてRailsを解説。
• Test-Driven Development(TDD)で開発。
• Rspecがredからgreenになるまでテストコードと睨めっこします。
2011年9月3日土曜日
進め方
• コードをひたすら追っていきます。
• 口頭でコードの動きを説明
• タイトルの横にある括弧内はセクション番号
• もしコードの動きがよく理解出来ない場合は、セクション番号から該当する章を読むと良い。
2011年9月3日土曜日
進め方
• コードをひたすら追っていきます。
• 口頭でコードの動きを説明
• タイトルの横にある括弧内はセクション番号
• もしコードの動きがよく理解出来ない場合は、セクション番号から該当する章を読むと良い。
←タイトル
2011年9月3日土曜日
基本方針
• 60minで全部理解するのは無理。諦めましょう。
• 1. 重要そうなところだけカバー
• 2. 放置したところは、あとで調べる
• 3. ただし、 質問はいつでもokです。
2011年9月3日土曜日
今日の目標
2011年9月3日土曜日
Railsを知った気になること
2011年9月3日土曜日
“もうRails使えるお!”
2011年9月3日土曜日
モチベーションはとても大事です
2011年9月3日土曜日
堂々と分かった気になりましょう
2011年9月3日土曜日
堂々と分かった気になりましょう
(心の中で)
2011年9月3日土曜日
ではボチボチ始めます
2011年9月3日土曜日
1.1 イントロ• 参考書の紹介(必要に応じて適宜参照する)
• HTML/CSS周りがワカラン:
• Head First HTML
• CSS: The Missing Manual
• Rubyがワカラン:
• The Well-Grounded Rubyist, David A. Black
• The Ruby Way, Hal Fulton
• The Rails 3 Way2011年9月3日土曜日
1.1 イントロ
• 他、使えそうなモノ:
• Railscasts
• PeeoCode, Pragmatic.tv, EnvyCasts
• Rails Guides
• Rails blogs
2011年9月3日土曜日
TIPS
• Ruby Weekly
• 毎週Ruby/Railsな情報を教えてくれるML
• Minituku
• Matzさんが直々に教えてくれるサイト
2011年9月3日土曜日
1.2.1 開発環境• IDE(Cross-platform): RadRails, RubyMine, 3rd Rail
• OS別オススメ環境
• Mac OS X: TextMate, Emacs, MacVim
• Linux: Vim, gedit+GMate, Kate
• Win: Vim, E Text Editor, Komodo Edit, Sublime Text
• Browswers:
• Firefox + Firebug
• Firebug Lite
2011年9月3日土曜日
1.2.2 必要なモノ• Ruby 1.9.x, RubyGems, Rails 3.0.x, Git
• 最近Rails3.1が出たので注意。
• Win: Rails Installerで一発らしい(?)
• http://railsinstaller.org
• Mac&Linux:
• http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:rubygems
2011年9月3日土曜日
発表者の開発環境
2011年9月3日土曜日
1.2.3 使ってみよう• mkdir rails_projecs
• cd rails_projects
• rails new first_app
2011年9月3日土曜日
2011年9月3日土曜日
よく使うフォルダ• app: コアな部分。MVCなコードとか
• config: アプリケーション
• db: DB周りをいじるためのコード
• public: CSSやJSとか画像などの置き場
• test: テストコード置き場
• Gemfile: プラグインを書き込むファイル
2011年9月3日土曜日
1.2.4 使ってみよう• Gemfileを書き換え:
• bundle install
2011年9月3日土曜日
1.2.5 使ってみよう• rails server
2011年9月3日土曜日
TIPS
• 「“rails”とか”git”とかよく使いそうなコマンドは さっさとエイリアス!」
• rails server → rails s → r s
• git → g
2011年9月3日土曜日
1.2.6 MVC
• app/の中の話。
• models/
• どんなデータか
• views/
• どう描画するか
• controllers/
• どう処理するか2011年9月3日土曜日
1.3 Gitの使い方• Git = (Distributed) Version Controll Systems
2011年9月3日土曜日
1.3 Gitの使い方• git config --global user.name “Your Name”
• git config --global user.email [email protected]
• Alias
• git config --global alias.$(エイリアス) コマンド名
• git config --global alias.a add
• git config --global alias.c commit
• git config --global alias.r remote
• エディタの指定: git config --global core.editor “emacs”2011年9月3日土曜日
• git init
• emacs .gitignore
• 中身はこんな感じ→
1.3.1 Gitを使ってみる
2011年9月3日土曜日
1.3.2 Gitを使ってみる
• git add .
• git status
• git commit -m “Initial commit”
• git log
• “q”をタイプすることで元の画面へ。
2011年9月3日土曜日
1.3.4 GitHubを使ってみる
2011年9月3日土曜日
1.3.4 GitHubを使ってみる
2011年9月3日土曜日
• git remote add origin [email protected]:<username>/first_app.git
• git push origin master
1.3.4 GitHubを使ってみる
2011年9月3日土曜日
1.3.5 Gitの他コマンド• Branch
• git checkout -b modify-README
• git branch
• Edit
• git mv README README.markdown
• emacs README.markdown
2011年9月3日土曜日
1.3.5 Gitの他コマンド• Commit
• git status
• git commit -am “Improved the README file”
• Merge
• git checkout master
• git merge modify-README
• Branch delete
• git branch -d modify-README
• Push
• git push2011年9月3日土曜日
1.4 Webにupしよう• Herokuを使う
• sudo gem install heroku
• heroku keys:add
• heroku create
• git push heroku master
• heroku open
• (Option) Heroku上のAppのURLを変更する
• heroku rename okinawarb-railstutorial2011年9月3日土曜日
webにupできた!
2011年9月3日土曜日
夢が広がる!• できるようになったこと• 1. Railsでアプリ作成
• 2. GitHubでソースコードを公開
• 3. アプリをWeb上で公開
2011年9月3日土曜日
ちょっと休憩何か質問あれば
2011年9月3日土曜日
続きRailsをもっと使ってみる
2011年9月3日土曜日
2.1 おさらい• cd ~/Dropbox/rails_projects
• rails new demo_app
• cd demo_app
• emacs Gemfile
• bundle install2011年9月3日土曜日
2.1 おさらい• git init
• git add .
• git commit -m “Initial commit”
• GitHubでレポジトリ作成
2011年9月3日土曜日
2.1 おさらい
• git remote add origin \[email protected]:<username>/demo_app.git
• git push origin master
2011年9月3日土曜日
2.1.1 Modelを考える• ユーザって何?
2011年9月3日土曜日
2.1.1 Modelを考える• ユーザって何?
•
2011年9月3日土曜日
2.1.2 Modelを考える• micropostsって何?
• (i.e. twitterのtweet)
2011年9月3日土曜日
2.1.2 Modelを考える• micropostsって何?
• (i.e. twitterのtweet)
•
•
2011年9月3日土曜日
2.2 Userを作ってみる • rails generate scaffold User name:string email:string
• なんか色々と作られる
• 注)まだdbはいじってない!
• dbをいじるスクリプトを生成しただけ!
• cat db/migrate/<日付>_create_users.rb
• bundle exec rake db:migrate
• これでdbをいじるスクリプトが実行される。2011年9月3日土曜日
TIPS
• “rails generate scaffold” は黒魔法です。
•何が起こっても気にしないこと!
2011年9月3日土曜日
TIPS
• “rails generate scaffold” は黒魔法です。
•何が起こっても気にしないこと!と、Rails Tutorialの著者が言ってます.
2011年9月3日土曜日
TIPS
• “rails generate scaffold” は黒魔法です。
•何が起こっても気にしないこと!と、Rails Tutorialの著者が言ってます.
実際、本書ではscaffoldは使いません.
2011年9月3日土曜日
2.2 恐る恐る見てみる• rails s
2011年9月3日土曜日
2.2 恐る恐る見てみる• rails s
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
2.2 恐る恐る見てみる
2011年9月3日土曜日
rails generate scaffoldを実行しただけなのに...
2011年9月3日土曜日
┐(´-`)┌
2011年9月3日土曜日
ただサンプルコードとしては中々の優れもの
2011年9月3日土曜日
ちょっとコードを読んでみる
2011年9月3日土曜日
2.2.2 MVCの動き
2011年9月3日土曜日
2.2.2 MVCの動き例:localhost:3000/users
1. ブラウザからreq.
2. /usersのindexを実行3. indexがUser.allを実行4. Mがdbからusersを取得5. Cにusersを渡す6. @usersにusersを代入7. Vが@usersを描画8. Cが結果を返す2011年9月3日土曜日
1. ブラウザからreq.
+Enter
2011年9月3日土曜日
2. /usersのindexを実行
app/controllers/users_controller.rb
2011年9月3日土曜日
2. /usersのindexを実行
app/controllers/users_controller.rb
2011年9月3日土曜日
3. indexがUser.allを実行
app/controllers/users_controller.rb
2011年9月3日土曜日
4. Mがdbからusersを取得5. Cにusersを渡す
app/models/user.rb
2011年9月3日土曜日
4. Mがdbからusersを取得5. Cにusersを渡す
app/models/user.rb
こいつが何かやってるっぽい...
2011年9月3日土曜日
6. @usersにusersを代入
app/controllers/users_controller.rb
2011年9月3日土曜日
7. Vが@usersを描画app/views/users/index.html.erb
2011年9月3日土曜日
7. Vが@usersを描画app/views/users/index.html.erb
2011年9月3日土曜日
7. Vが@usersを描画app/views/users/index.html.erb
2011年9月3日土曜日
8. Cが結果を返す
app/controllers/users_controller.rb
2011年9月3日土曜日
2.2.2 MVCの動き例:localhost:3000/users
1. ブラウザからreq.
2. /usersのindexを実行3. indexがUser.allを実行4. Mがdbからusersを取得5. Cにusersを渡す6. @usersにusersを代入7. Vが@usersを描画8. Cが結果を返す2011年9月3日土曜日
ところで...
2011年9月3日土曜日
app/controllers/users_controller.rb
2011年9月3日土曜日
localhost:3000/users.xml
なん...だと...!?2011年9月3日土曜日
話を戻して
2011年9月3日土曜日
index以外もいろいろ
2011年9月3日土曜日
他にも色々
2011年9月3日土曜日
他にも色々
2011年9月3日土曜日
注目!
2011年9月3日土曜日
同じURLでも
2011年9月3日土曜日
他にも色々
2011年9月3日土曜日
実行内容が違う
2011年9月3日土曜日
他にも色々
2011年9月3日土曜日
URL直打ちだと
2011年9月3日土曜日
2011年9月3日土曜日
showになるっぽい
2011年9月3日土曜日
2011年9月3日土曜日
どうやってdelete/updateをするのか?
2011年9月3日土曜日
2011年9月3日土曜日
何が違うのか?
2011年9月3日土曜日
HTTP methodが違う
2011年9月3日土曜日
同じURLでもHTTP methodが違うと振る舞いも異なる
2011年9月3日土曜日
こんな設計を“RESTfulなリソース設計”
と呼びます
2011年9月3日土曜日
TIPS• RESTfulの恩恵:
• URLが直感的になる
• “GET users/1” = userのNo.1の情報を取得
• “PUT users/1” = userのNo.1を更新する
• “DELETE users/1” = userのNo.1を削除する
• 使いやすいAPIを提供出来る.
• リソースに対してHTTP methodを変えるだけ!
詳細はchapter 12で解説
2011年9月3日土曜日
もっとRESTfulを知りたい!
2011年9月3日土曜日
話を戻して
2011年9月3日土曜日
同様にMicropostsを作ってみる
2011年9月3日土曜日
黒魔法再び
┐(´-`)┌2011年9月3日土曜日
2.3 Micropostsを作ってみる• rails generate scaffold Micropost \
content:string user_id:integer
• bundle exec rake db:migrate2011年9月3日土曜日
2.3 Micropostsを作ってみる
2011年9月3日土曜日
2.3 Micropostsを作ってみる
2011年9月3日土曜日
2.3 Micropostsを使ってみる
2011年9月3日土曜日
2.3 Micropostsを使ってみる
2011年9月3日土曜日
2.3 Micropostsを使ってみる
2011年9月3日土曜日
2.3 Micropostsを使ってみる
rails generate scaffold Micropost \content:string user_id:integer
2011年9月3日土曜日
2.3 Micropostsを使ってみる
2011年9月3日土曜日
2.3 Micropostsを使ってみる
2011年9月3日土曜日
これでtwitter-like...?
2011年9月3日土曜日
問題点1. 文字数無制限2. Userが独立
2011年9月3日土曜日
2.3.2 文字数制限の追加
2011年9月3日土曜日
2.3.2 文字数制限の追加
2011年9月3日土曜日
2.3.3 Userを繋ぐ
2011年9月3日土曜日
2.3.3 Userを繋ぐ
2011年9月3日土曜日
2.3.3 Userを繋ぐ
2011年9月3日土曜日
2.3.3 Userを繋ぐ
• rails console
• >> User.first
• => #<User id: 1, name: “...”, email: “...” ...
• >> User.first.microposts
• => [#<Micropost id: 1, content: “...”, ...
2011年9月3日土曜日
2.3.3 Userを繋ぐ
• rails console
• >> User.first
• => #<User id: 1, name: “...”, email: “...” ...
• >> User.first.microposts
• => [#<Micropost id: 1, content: “...”, ...
2011年9月3日土曜日
2.3.3 Userを繋ぐ
• rails console
• >> User.first
• => #<User id: 1, name: “...”, email: “...” ...
• >> User.first.microposts
• => [#<Micropost id: 1, content: “...”, ...
2011年9月3日土曜日
2.3.3 Userを繋ぐ
• rails console
• >> User.first
• => #<User id: 1, name: “...”, email: “...” ...
• >> User.first.microposts
• => [#<Micropost id: 1, content: “...”, ...
2011年9月3日土曜日
2.3.3 Userを繋ぐ
• rails console
• >> User.first
• => #<User id: 1, name: “...”, email: “...” ...
• >> User.first.microposts
• => [#<Micropost id: 1, content: “...”, ...
2011年9月3日土曜日
2.3.3 Userを繋ぐ
• rails console
• >> User.first
• => #<User id: 1, name: “...”, email: “...” ...
• >> User.first.microposts
• => [#<Micropost id: 1, content: “...”, ...
2011年9月3日土曜日
2.3.5 webにupしてみる(再)• git add .
• git commit -am “Done with the demo app”
• git push
• heroku create
• git push heroku master
• heroku rake db:migrate
• heroku open
2011年9月3日土曜日
まとめ
• 出来るようになったこと
• 1. rails generate scaffoldを使える
• 2. どこに何のコードがあるか分かる
• 3. modelに制限かけたり繋いだり出来る
2011年9月3日土曜日
続きは• Chapter 3 - Mostly static pages
• http://ruby.railstutorial.org/chapters/static-pages#top
2011年9月3日土曜日
Thanks!
@yasulab
2011年9月3日土曜日
英文よむときのポイント• 1. マウスオーバー辞書 + 英辞郎
• MacならLiveDictionary+英辞郎
• 2. 英文の構成を知る (i.e. 5 paragraph essay)
• Intro→body 1→body 2→body 3→cncl.
• 3. ソースコードや図・表で理解しようと試みる
• “ソースコードは口ほどに物を言う”
2011年9月3日土曜日