[英]Rails Query based on hasManyBelongsToMany relation
我有以下型號
venues(id, name, ....)
categories(id, name, ....)
categories_venues(id, venue_id, category_id)
我想查詢具有Categories ID = (1)/(2) or (1 and 2)
關系的場所
如何在哪里查詢HABTM的關系?
編輯
使用以下查詢可以解決該問題。
場所= Venue.joins(:categories_venues).where(:categories_venues => {:category_id => values})
我想從查詢中排除重復的記錄,並從結果中排除特定的ID?
---
- !ruby/object:Venue
attributes:
id: 2
name: Ooty
slug: ooty
created_at: 2014-06-21 22:10:52.000000000 Z
updated_at: 2014-07-05 17:33:26.000000000 Z
- !ruby/object:Venue
attributes:
id: 4
name: Munnar
slug: munnar
created_at: 2014-08-25 03:42:13.000000000 Z
updated_at: 2014-08-25 03:42:13.000000000 Z
- !ruby/object:Venue
attributes:
id: 2
name: Ooty
slug: ooty
created_at: 2014-06-21 22:10:52.000000000 Z
updated_at: 2014-07-05 17:33:26.000000000 Z
不確定是否理解正確。 如果您認為此答案未提供正確的查詢,請提供sql代碼,但我認為應該只是
Venue.joins(:categories).where(category_id: [1,2])
您可以使用下面的查詢來獲取基於類別的場地詳細信息
venues = Venue.joins(:categories_venues).where(:categories_venues => {:category_id => values})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.