SlideShare une entreprise Scribd logo
1  sur  29
Télécharger pour lire hors ligne
Ruby on RailsとRDB(超基礎編)
RINDO KATSURA

13年12月13日金曜日
目次

Ruby on Railsの紹介と基礎(3分タイムアタック)
O/R Mappingのお話
演習

13年12月13日金曜日
Ruby on Railsとは?

13年12月13日金曜日
3分タイムアタック

よくあるTODOアプリ作ります(Rails知ってる
人はすみません)
3分以内にできたら拍手!!

13年12月13日金曜日
DBの研究会なので...
O/R マッパーをご存知ですか?
Object-relational mappingの略
“簡単”に”わかりやすく”、SQLを記述できる
この後みんなで触ってみます!

13年12月13日金曜日
David曰く「SQLって汚くない?」
O/Rマッパーの利点
SQLを分解できる
分解したSQLを構築できる
分解したものを抽象化してわかりやすい

13年12月13日金曜日
O/R mappingを体感!

13年12月13日金曜日
作ってみよう①

ssh LogName@webedit.sfc.keio.ac.jp
ssh zmac001.sfc.keio.ac.jp
みんな1に入るとアレなので001 ~ 010くらいで

13年12月13日金曜日
作ってみよう②
CNSではこうやらないとできないらしい...
rails new company
(control + C) : password求められる
cd company
bundle install --path vendor/bundle

13年12月13日金曜日
作ってみよう③

rails g model department name:string
rails g model employee name:string
age:integer sex:string department_id:integer
rake db:migrate

13年12月13日金曜日
できたDB

13年12月13日金曜日
データを入れてみよう

rails console
eigyobu = Department.new(:name => ‘eigyo’)
eigyobu.save

13年12月13日金曜日
演習①
太郎 (taro) という31歳(age)の男性(male)社員のデータを
入れてみる。 (できてもコンソールはそのままで)
ヒント
Employee.new( :name => ‘’, :age => , :sex => ...
saveで保存

13年12月13日金曜日
データを入れてみよう②
太郎の部署に先ほど作った営業部(id : 1)を入
れて更新してみる
taro.department_id = 1
taro.save

13年12月13日金曜日
演習②
花子(hanako, 26歳)という女性社員を新規に作
り、広報(kouho)部を新たに作成しそこの所属
にする
ヒント
Department.new( .. , Employee.new( ..
○○.×× = hogefuga, ○○.save

13年12月13日金曜日
演習③
太郎がリストラされてしまいました..。太郎の
データを消しましょう。
ヒント
○○.delete : 削除のメソッド
○○.save : 削除したら変更を保存
Employee.all で確認
13年12月13日金曜日
サンプルデータを入れます

quit (rails consoleから抜ける)
cat /home/t11240rk/company/db/seeds.rb > db/seeds.rb
rake db:seed

13年12月13日金曜日
やっと本番です

O/R マッパーを堪能する。

13年12月13日金曜日
Ruby on Rails Guide

http:/
/guides.rubyonrails.org/
active_record_basics.html

13年12月13日金曜日
まだまだ便利な機能が

http:/
/guides.rubyonrails.org/

13年12月13日金曜日
ちょっと難しい
部署別の人って find_by_department_id的なコード書
けばわかるけど...(id覚えてないとダメ. なにより長い)
Employee.find_by_department_id(Department.find_by_name(“eigyo”));
SELECT "employees".* FROM "employees" WHERE "employees"."department_id" =
1 LIMIT 1

13年12月13日金曜日
アソシエーション
Active Recordにassociationという機能があり
ます!
http:/
/guides.rubyonrails.org/
association_basics.html
簡単にアソシエーションを記述できる

13年12月13日金曜日
こんなイメージ

13年12月13日金曜日
部署.社員達

簡単に呼び出したい!!
app/models/department.rb, app/models/
employee.rb を編集しよう

13年12月13日金曜日
department.rb

vim(emacs) models/department.rb
has_many :employees を追加

13年12月13日金曜日
employee.rb

vim employee.rb
belongs_to :department を追加

13年12月13日金曜日
完成!

13年12月13日金曜日
確認

rails console
eigyobu = Department.find_by_name(‘eigyo’)
eigyobu.employees

13年12月13日金曜日
参考

Railsを学びたいなら http:/
/guides.rubyonrails.org
も少し複雑なSQL http:/
/guides.rubyonrails.org/
active_record_querying.html

13年12月13日金曜日

Contenu connexe

En vedette

How Divorce Affects Social Security Benefits
How Divorce Affects Social Security BenefitsHow Divorce Affects Social Security Benefits
How Divorce Affects Social Security BenefitsDavid Lerner Associates
 
Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Olga Lavrentieva
 
σχολικός εκφοβισμός
σχολικός εκφοβισμόςσχολικός εκφοβισμός
σχολικός εκφοβισμόςStella Stath
 
Institución educativa nuestra señora del rosario ,neira (2)
Institución educativa nuestra señora del rosario ,neira (2)Institución educativa nuestra señora del rosario ,neira (2)
Institución educativa nuestra señora del rosario ,neira (2)carolinavilladacorrea
 
apicHoney bbq recipes
apicHoney bbq recipesapicHoney bbq recipes
apicHoney bbq recipesouzmih
 
Harry Coumnas - Meteorologist
Harry Coumnas - MeteorologistHarry Coumnas - Meteorologist
Harry Coumnas - Meteorologistkevin8smith
 
Target audience profile v2
Target audience profile v2Target audience profile v2
Target audience profile v2Pedz97
 

En vedette (13)

How Divorce Affects Social Security Benefits
How Divorce Affects Social Security BenefitsHow Divorce Affects Social Security Benefits
How Divorce Affects Social Security Benefits
 
Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»Дмитрий Савицкий «Ruby Anti Magic Shield»
Дмитрий Савицкий «Ruby Anti Magic Shield»
 
Call sheets informal ones
Call sheets  informal onesCall sheets  informal ones
Call sheets informal ones
 
Musik indo 02
Musik indo 02Musik indo 02
Musik indo 02
 
σχολικός εκφοβισμός
σχολικός εκφοβισμόςσχολικός εκφοβισμός
σχολικός εκφοβισμός
 
Institución educativa nuestra señora del rosario ,neira (2)
Institución educativa nuestra señora del rosario ,neira (2)Institución educativa nuestra señora del rosario ,neira (2)
Institución educativa nuestra señora del rosario ,neira (2)
 
apicHoney bbq recipes
apicHoney bbq recipesapicHoney bbq recipes
apicHoney bbq recipes
 
MS_Learning_Transcript.PDF
MS_Learning_Transcript.PDFMS_Learning_Transcript.PDF
MS_Learning_Transcript.PDF
 
Champak 2
Champak 2Champak 2
Champak 2
 
Ihab Eltahan's C.V.
Ihab Eltahan's C.V.Ihab Eltahan's C.V.
Ihab Eltahan's C.V.
 
Mandibular guidance 3
Mandibular guidance 3Mandibular guidance 3
Mandibular guidance 3
 
Harry Coumnas - Meteorologist
Harry Coumnas - MeteorologistHarry Coumnas - Meteorologist
Harry Coumnas - Meteorologist
 
Target audience profile v2
Target audience profile v2Target audience profile v2
Target audience profile v2
 

Similaire à 12 13-lecture

RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)三七男 山本
 
「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasualSATOSHI TAGOMORI
 
LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13maru_cc
 
地域Ruby会議に参加してきた話とか
地域Ruby会議に参加してきた話とか地域Ruby会議に参加してきた話とか
地域Ruby会議に参加してきた話とかKen Muryoi
 
Batch and Stream processing with SQL
Batch and Stream processing with SQLBatch and Stream processing with SQL
Batch and Stream processing with SQLSATOSHI TAGOMORI
 
#027 tddのさわり
#027 tddのさわり#027 tddのさわり
#027 tddのさわり森下 智裕
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみたngi group.
 

Similaire à 12 13-lecture (9)

RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)RubyではじめるIoT(Wakayama.rb活動報告)
RubyではじめるIoT(Wakayama.rb活動報告)
 
「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual「ほげエンジニア」の定義について #operationcasual
「ほげエンジニア」の定義について #operationcasual
 
LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13LLTLIVE in Shibuya 2013.12.13
LLTLIVE in Shibuya 2013.12.13
 
O/R Mapper Stratumの話
O/R Mapper Stratumの話O/R Mapper Stratumの話
O/R Mapper Stratumの話
 
地域Ruby会議に参加してきた話とか
地域Ruby会議に参加してきた話とか地域Ruby会議に参加してきた話とか
地域Ruby会議に参加してきた話とか
 
Batch and Stream processing with SQL
Batch and Stream processing with SQLBatch and Stream processing with SQL
Batch and Stream processing with SQL
 
#027 tddのさわり
#027 tddのさわり#027 tddのさわり
#027 tddのさわり
 
20091119_sinatraを使ってみた
20091119_sinatraを使ってみた20091119_sinatraを使ってみた
20091119_sinatraを使ってみた
 
20130112 lod android
20130112 lod android20130112 lod android
20130112 lod android
 

12 13-lecture