簡體   English   中英

Rails will_paginate在HABTM模型上顯示重復項

[英]Rails will_paginate shows duplicates on HABTM models

我正在將will_paginate與Blog帖子和標簽之間的HABTM關系配合使用。 每當我應用分頁時,都會顯示重復的帖子,因為Rails中的HABTM不會保持數據庫唯一,而是在進行查詢時應用唯一性。

blog_posts.rb

has_and_belongs_to_many :tags, :uniq => true

tag.rb

has_and_belongs_to_many :blog_posts, :uniq => true

根據ActiveRecord的文檔 ,:uniq不會阻止重復的關系被存儲,它只會在構建查詢時忽略它們。

這是問題所在: tag = Tag.find(1) tag.blog_posts.count等於1,但是: tag.blog_posts.page(nil).count等於3,並且所有3個都是同一帖子的重復項。 正確的行為應該是僅顯示1,而不是重復。

我知道我可以復制此處生成的SQL查詢並以這種方式解決,但這似乎不是一個好的解決方案。 有人可以幫我解決潛在的問題嗎? (盡管我擔心這是will_paginate中的錯誤)

編輯:這似乎也是Kaminari的問題。

我想我曾經遇到過這個問題。 嘗試將其添加到您的查詢中:

.group("id")

這不是will_paginate中的錯誤,因為所有要做的就是獲取它提供的數據並在視圖中進行分頁。 解決方案在於您提供的數據。

暫無
暫無

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

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