Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Ruby / Ruby on Railsビギナーズ倶楽部
Active Record入門 !
アソシエーション(関連)編
2015.07.04
モデル開発
Self-Intoroduction
• WordPressもくもく倶楽部@Co-Edoも来てください♪
• Swiftビギナーズ倶楽部@Co-Edoも開催しています( ́ ▽ ` )ノ
• アプリケーションエンジニア(Rails/LAMP/J...
1)Active Recordの基本
Today's Agenda
2)アソシエーション(関連)の基本
3)実際にやってみよう!
1)Active Recordの基本
図引用:Railsチュートリアル「図2.11RailsにおけるMVC。」
ここのお話
Active Recordは、MVCモデルの「M」担当。
RailsのM(モデル)の基本3つ
1)モデルとは、データベースにアクセスする
  コンポーネント(部品)です。
2)Rails標準のモデル層に相当するのが、
  「Active Record」です。 オブジェクト
リレーショナル
マッピング
...
ORMは何してくれる?
モデル構造(アプリケーション)と
テーブル構造(RDB)は、決定的に構造が違います。
O/Rマッピング
ともいいます。
ID 姓 名
1 小林 加奈子
2 山田 一郎
3 鈴木 花子
ユーザーテーブル
User
- id...
ORMは何してくれる?
モデル構造(アプリケーション)と
テーブル構造(DB)を紐付けてくれます。
O/Rマッピング
ともいいます。
User
- id
- first_name
- last_name
first_name:小林
last_nam...
2)アソシエーション(関連)の基本
select
user.name,
post.title,
post.content
from user
inner join post
on user.id = post.user_id;
テーブル間の「1...
2)アソシエーション(関連)の基本
Railsでは、テーブル間の「1対多」を
RDBではなく、モデルで簡単に実装できます。
class User < ActiveRecord::Base
has_many :posts
end
class Po...
2)アソシエーション(関連)の基本
「1対多」のデータを簡単に抽出できます!
User.first.posts
例えば
この記述だけで
実際にやってみよう!
DEMO
ま と め
・モデルおよびモデル内のデータを表現する。
・モデル間の関連付け(アソシエーション)を表現する。
・関連するモデルを介した継承階層を表現する。
・データがデータベースに永続的に保存される前に
 検証(validation)を行なう。...
参 照 情 報
http://railsguides.jp/active_record_basics.html
・RailsGuides ー Active Record の基礎 ー
Let's study together!
Thank you :)
Upcoming SlideShare
Loading in …5
×

Active Record入門 !アソシエーション(関連)編

1,760 views

Published on

「Ruby / Ruby on Rails ビギナーズ勉強会 第6回」での発表内容です。
Active Record(ORM)の機能を解説しています。

■イベントページはこちらです。
https://coedo-rails.doorkeeper.jp/events/26077

=============================================================

「CoEdo.rb」が運営する「Ruby / Ruby on Railsビギナーズ勉強会」Ruby、Ruby on Railsなどで開発したい、触りたいための初心者勉強会&もくもく会です。

開催の連絡は以下の方法で受け取ることができます。

## DoorKeeperグループ
イベント申し込みを受け付けている、DoorKeeper でのグループです。
https://coedo-rails.doorkeeper.jp/

## Facebookグループ
イベント告知や技術情報をお互いにシェアしています。
https://www.facebook.com/groups/rorbeginners/

## Twitterハッシュタグ
ハッシュタグは、 #rubybg です。
Twitterにもイベント、勉強会の情報を流しています。

[★Ustreamでは、勉強会を生中継しています。](http://www.ustream.tv/channel/ruby-ruby-on-rails-%E3%83%93%E3%82%AE%E3%83%8A%E3%83%BC%E3%82%BA%E5%80%B6%E6%A5%BB
D%E9%83%A8)

[★Youtubeでは、ショートセッションを収録しています。](https://www.youtube.com/playlist?list=PL2ojdc4KhtHniIyIUx3AdO621ydzz5zpP)

Published in: Engineering

Active Record入門 !アソシエーション(関連)編

  1. 1. Ruby / Ruby on Railsビギナーズ倶楽部 Active Record入門 ! アソシエーション(関連)編 2015.07.04 モデル開発
  2. 2. Self-Intoroduction • WordPressもくもく倶楽部@Co-Edoも来てください♪ • Swiftビギナーズ倶楽部@Co-Edoも開催しています( ́ ▽ ` )ノ • アプリケーションエンジニア(Rails/LAMP/Java/Oracle) http://wp-moku.doorkeeper.jp/ 一緒に勉強しましょう( ́ ▽ ` )ノ 勉強会やってます! http://swift-beginners.doorkeeper.jp/ 徳島県出身です (ó `o)
  3. 3. 1)Active Recordの基本 Today's Agenda 2)アソシエーション(関連)の基本 3)実際にやってみよう!
  4. 4. 1)Active Recordの基本 図引用:Railsチュートリアル「図2.11RailsにおけるMVC。」 ここのお話 Active Recordは、MVCモデルの「M」担当。
  5. 5. RailsのM(モデル)の基本3つ 1)モデルとは、データベースにアクセスする   コンポーネント(部品)です。 2)Rails標準のモデル層に相当するのが、   「Active Record」です。 オブジェクト リレーショナル マッピング 3)「Active Record」が、ORMを担当します。
  6. 6. ORMは何してくれる? モデル構造(アプリケーション)と テーブル構造(RDB)は、決定的に構造が違います。 O/Rマッピング ともいいます。 ID 姓 名 1 小林 加奈子 2 山田 一郎 3 鈴木 花子 ユーザーテーブル User - id - first_name - last_name first_name:小林 last_name:加奈子 id:1 first_name:山田 last_name:一郎 id:2 ユーザーモデル(クラス) オブジェクト オブジェクト インピーダンスミスマッチと いいます。 ☓
  7. 7. ORMは何してくれる? モデル構造(アプリケーション)と テーブル構造(DB)を紐付けてくれます。 O/Rマッピング ともいいます。 User - id - first_name - last_name first_name:小林 last_name:加奈子 id:1 first_name:山田 last_name:一郎 id:2 ユーザーモデル(クラス) オブジェクト オブジェクト ID 姓 名 1 小林 加奈子 2 山田 一郎 3 鈴木 花子 ユーザーテーブル レコード レコード ORM
  8. 8. 2)アソシエーション(関連)の基本 select user.name, post.title, post.content from user inner join post on user.id = post.user_id; テーブル間の「1対多」の抽出を、 SQLで書くとこんな感じ。
  9. 9. 2)アソシエーション(関連)の基本 Railsでは、テーブル間の「1対多」を RDBではなく、モデルで簡単に実装できます。 class User < ActiveRecord::Base has_many :posts end class Post < ActiveRecord::Base belongs_to :user end モデルに 設定すると
  10. 10. 2)アソシエーション(関連)の基本 「1対多」のデータを簡単に抽出できます! User.first.posts 例えば この記述だけで
  11. 11. 実際にやってみよう! DEMO
  12. 12. ま と め ・モデルおよびモデル内のデータを表現する。 ・モデル間の関連付け(アソシエーション)を表現する。 ・関連するモデルを介した継承階層を表現する。 ・データがデータベースに永続的に保存される前に  検証(validation)を行なう。 ・オブジェクト指向の表記方法でデータベースを操作する。 Active Recordにはさまざまな機能が搭載されています。
  13. 13. 参 照 情 報 http://railsguides.jp/active_record_basics.html ・RailsGuides ー Active Record の基礎 ー
  14. 14. Let's study together! Thank you :)

×