簡體   English   中英

基於hasManyBelongsToMany關系的Rails查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM