簡體   English   中英

Rails - 如何進行此查詢? 獲得每條記錄之一

[英]Rails - How Do I do this Query? Get One of Each Record

我有一個BlogPost模型,其中包含:category屬性。 我正在制作一個新的BlogPost表單,我希望選擇菜單能夠填充用戶在先前記錄中輸入的每個類別。

因此,我需要一個查詢來查找具有User ID所有BlogPosts ,然后將他們輸入的每個類別的列表四舍五入。 多個記錄中將存在相同的類別,但當然我只想為選擇菜單返回它的副本。

謝謝 :)

您可以SELECT DISTINCT類別向正確的用戶返回INNER JOIN

Category
  .joins( :posts )
  .where( posts: { user_id: current_user.id } )
  .uniq

這應該發送這樣的查詢:

SELECT DISTINCT categories.*
FROM categories
  INNER JOIN posts ON posts.category_id = categories.id
WHERE posts.user_id = [whatever]

編輯注意:要小心uniq既是Relation又是Array 確保在將它轉換為數組之前在關系上調用它,或者你將在一系列非獨特結果上執行uniq,這也是有效的,但在性能方面是荒謬的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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