[RUBY-ON-RAILS] 어떻게 첫 번째 모델에 속하는 다른 모델의 특성을 기반으로 모델을 쿼리하는?
RUBY-ON-RAILS어떻게 첫 번째 모델에 속하는 다른 모델의 특성을 기반으로 모델을 쿼리하는?
나는 모든 사람에 대한 쿼리 수있는 방법을 각 차량 형 자동차 또는 오토바이 될 수 has_many 차량 및 모델 사람을, 오토바이가 자동차와 모든 사람을 가지고있는 사람이 있다면?
나는이 올바른 생각하지 않는다 :
Person.joins(:vehicles).where(vehicle_type: 'auto')
Person.joins(:vehicles).where(vehicle_type: 'motorcycle')
해결법
-
==============================
1.당신은 다음과 같이 할 수 있습니다 :
당신은 다음과 같이 할 수 있습니다 :
Person.includes(:vehicles).where(vehicles: { type: 'auto' }) Person.includes(:vehicles).where(vehicles: { type: 'motorcycle' })
.joins 및 .includes에주의 :
# consider these models Post # table name is posts belongs_to :user #^^ User # table name is users has_many :posts #^ # the `includes/joins` methods use the relation name defined in the model: User.includes(:posts).where(posts: { title: 'Bobby Table' }) #^ ^ # but the `where` uses the exact table name: Post.includes(:user).where(users: { name: 'Bobby' }) #^^^ ^
까다로운 일 :
Post belongs_to :author, class_name: 'User' User # table named users has_many :posts Post.includes(:author).where(users: { name: 'John' }) # because table is named users
유제:
from https://stackoverflow.com/questions/23633301/how-to-query-a-model-based-on-attribute-of-another-model-which-belongs-to-the-fi by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 랙 미들웨어는 무엇입니까? (0) | 2020.02.10 |
---|---|
[RUBY-ON-RAILS] 왜 문자열 # GSUB 이중 컨텐츠를합니까? (0) | 2020.02.10 |
[RUBY-ON-RAILS] 지도 무엇을 않습니다 (: name)이 루비 코드에서 무엇입니까? (0) | 2020.02.10 |
[RUBY-ON-RAILS] 어떻게 루비 / 말대꾸 내부 변수를 레일 사용할 수 있습니까? (0) | 2020.02.10 |
[RUBY-ON-RAILS] 루비 레일의 인스턴스 변수 대 심볼 (form_for) (0) | 2020.02.10 |