Successfully reported this slideshow.

12 13-lecture

263 views

Published on

12/13 研究会でのレクチャー

  • Be the first to comment

  • Be the first to like this

12 13-lecture

  1. 1. Ruby on RailsとRDB(超基礎編) RINDO KATSURA 13年12月13日金曜日
  2. 2. 目次 Ruby on Railsの紹介と基礎(3分タイムアタック) O/R Mappingのお話 演習 13年12月13日金曜日
  3. 3. Ruby on Railsとは? 13年12月13日金曜日
  4. 4. 3分タイムアタック よくあるTODOアプリ作ります(Rails知ってる 人はすみません) 3分以内にできたら拍手!! 13年12月13日金曜日
  5. 5. DBの研究会なので... O/R マッパーをご存知ですか? Object-relational mappingの略 “簡単”に”わかりやすく”、SQLを記述できる この後みんなで触ってみます! 13年12月13日金曜日
  6. 6. David曰く「SQLって汚くない?」 O/Rマッパーの利点 SQLを分解できる 分解したSQLを構築できる 分解したものを抽象化してわかりやすい 13年12月13日金曜日
  7. 7. O/R mappingを体感! 13年12月13日金曜日
  8. 8. 作ってみよう① ssh LogName@webedit.sfc.keio.ac.jp ssh zmac001.sfc.keio.ac.jp みんな1に入るとアレなので001 ~ 010くらいで 13年12月13日金曜日
  9. 9. 作ってみよう② CNSではこうやらないとできないらしい... rails new company (control + C) : password求められる cd company bundle install --path vendor/bundle 13年12月13日金曜日
  10. 10. 作ってみよう③ 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日金曜日
  11. 11. できたDB 13年12月13日金曜日
  12. 12. データを入れてみよう rails console eigyobu = Department.new(:name => ‘eigyo’) eigyobu.save 13年12月13日金曜日
  13. 13. 演習① 太郎 (taro) という31歳(age)の男性(male)社員のデータを 入れてみる。 (できてもコンソールはそのままで) ヒント Employee.new( :name => ‘’, :age => , :sex => ... saveで保存 13年12月13日金曜日
  14. 14. データを入れてみよう② 太郎の部署に先ほど作った営業部(id : 1)を入 れて更新してみる taro.department_id = 1 taro.save 13年12月13日金曜日
  15. 15. 演習② 花子(hanako, 26歳)という女性社員を新規に作 り、広報(kouho)部を新たに作成しそこの所属 にする ヒント Department.new( .. , Employee.new( .. ○○.×× = hogefuga, ○○.save 13年12月13日金曜日
  16. 16. 演習③ 太郎がリストラされてしまいました..。太郎の データを消しましょう。 ヒント ○○.delete : 削除のメソッド ○○.save : 削除したら変更を保存 Employee.all で確認 13年12月13日金曜日
  17. 17. サンプルデータを入れます quit (rails consoleから抜ける) cat /home/t11240rk/company/db/seeds.rb > db/seeds.rb rake db:seed 13年12月13日金曜日
  18. 18. やっと本番です O/R マッパーを堪能する。 13年12月13日金曜日
  19. 19. Ruby on Rails Guide http:/ /guides.rubyonrails.org/ active_record_basics.html 13年12月13日金曜日
  20. 20. まだまだ便利な機能が http:/ /guides.rubyonrails.org/ 13年12月13日金曜日
  21. 21. ちょっと難しい 部署別の人って 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日金曜日
  22. 22. アソシエーション Active Recordにassociationという機能があり ます! http:/ /guides.rubyonrails.org/ association_basics.html 簡単にアソシエーションを記述できる 13年12月13日金曜日
  23. 23. こんなイメージ 13年12月13日金曜日
  24. 24. 部署.社員達 簡単に呼び出したい!! app/models/department.rb, app/models/ employee.rb を編集しよう 13年12月13日金曜日
  25. 25. department.rb vim(emacs) models/department.rb has_many :employees を追加 13年12月13日金曜日
  26. 26. employee.rb vim employee.rb belongs_to :department を追加 13年12月13日金曜日
  27. 27. 完成! 13年12月13日金曜日
  28. 28. 確認 rails console eigyobu = Department.find_by_name(‘eigyo’) eigyobu.employees 13年12月13日金曜日
  29. 29. 参考 Railsを学びたいなら http:/ /guides.rubyonrails.org も少し複雑なSQL http:/ /guides.rubyonrails.org/ active_record_querying.html 13年12月13日金曜日

×