Ruby/RubyOnRails-日本語
Rails 一日一つメソッド (Day31) joinsメソッド
아랑팡팡
2024. 2. 8. 19:11
728x90
Rails 一日一つメソッド (Day31) joinsメソッド
joinsメソッドどは
- 関連するテーブル同士を結合(内部結合)してくれるメソッドの事で、関連するテーブルと内部結合したデータを取得する際に便利ばメソッド。
モデル名.joins(:関連名)
# 指定したモデルと関連している他のモデルをSQLのINNER JOINを使ってJoinする。
joinsメソッド例
- Userモデルのインスタンスは複数のCatインスタンスと接続され、各Catインスタンスは1つのUserインスタンスに属する。 joinsを使ってこのような関係を持つレコードを照会することができる。
class User < ActiveRecord::Base
has_many :cats
end
class Cat < ActiveRecord::Base
belongs_to :user
end
joinsメソッド使用例
1) Userと関連性がある
User.joins(:cats)
SELECT 'users'.* FROM 'usres' INNER JOIN 'cats' ON 'cats'. 'owner_id' = 'owner'.'id
2) 特定の条件を満たすCat付きUserを取得
User.joins(:posts).where(posts: { published: true })
3) 特定のフィールドを含む結果を取得
User.joins(:posts).select('users.*, COUNT(posts.id) as posts_count').group('users.id')
728x90
반응형
LIST