12 13-lecture
-
Upload
rindou-katsura -
Category
Documents
-
view
116 -
download
2
description
Transcript of 12 13-lecture
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 zmac001.sfc.keio.ac.jp
みんな1に入るとアレなので001 ~ 010くらいで
13年12月13日金曜日
作ってみよう②
rails new company
(control + C) : password求められる
cd company
bundle install --path vendor/bundle
CNSではこうやらないとできないらしい...
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日金曜日