簡體   English   中英

Rails ActsAsTaggable - 從用戶那里檢索最常用的帖子標簽

[英]Rails ActsAsTaggable - Retrieve most_used tag of posts from user

使用 ActsAsTaggableOn gem,我想檢索某個用戶用於帖子的最常用標簽。 目前我有一個user.rb模型和一個belongs_to用戶的post.rb模型。 我能做的是:

ActsAsTaggableOn::Tag.most_used

這確實向我展示了總體上最常用的標簽。 但是,我想將其過濾為僅顯示current_user最常用的標簽。 我在想類似的東西:

ActsAsTaggableOn::Tag.most_used.joins(:posts).where(user_id: current_user.id)

這不起作用,因為沒有建立連接,因此我無法加入模型。 如何訪問current_user posts中最常用的標簽?

ActsAsTaggableOn::Tag.joins(:taggable).where(taggable: current_user.posts).distinct.most_used(5)

在修補了很多查詢之后,我現在得到了解決方案,這可能有點棘手。 基本上 ActsAsTaggableOn 所做的只是將標簽分配給相應的模型。 然而,這些標簽與其他任何東西都沒有真正的關系。 可以分配標簽所有權

我現在所做的可能被認為是不好的做法:首先為 Post 分配了一個存儲在 tag_list 中的標簽,然后我將在posts.rb中觸發一個保存后操作,該操作將獲取 post 對象的最后一個標簽(在我的應用程序中只能分配一個標簽)並將其分配給用戶

@user.tag(@post, with: "Some tag", on: :posts)

自己編寫整個代碼而不依賴於 gem 會容易得多,但現在還可以。

暫無
暫無

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

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