當我打電話與雷分頁上嵌入文檔,我得到以下錯誤的集合:軌道3分頁與雷在mongoid嵌入文檔
(Access to the collection for Document is not allowed since it is an embedded document, please access a collection from the root document.):
我如何能解決這個問題的任何想法?我已經安裝了kaminari作爲寶石。
Alex
當我打電話與雷分頁上嵌入文檔,我得到以下錯誤的集合:軌道3分頁與雷在mongoid嵌入文檔
(Access to the collection for Document is not allowed since it is an embedded document, please access a collection from the root document.):
我如何能解決這個問題的任何想法?我已經安裝了kaminari作爲寶石。
Alex
您只需要通過父對象訪問集合。例如,給定以下型號:
class User
include Mongoid::Document
embeds_many :bookmarks
end
class Bookmark
include Mongoid::Document
embedded_in :user
end
然後進行分頁給定用戶的書籤,你會怎麼做:
@user.bookmarks.page(params[:page])
我發現雷這個問題:https://github.com/amatsuda/kaminari/issues/89
所以我分叉了,並按照spatrik提供的解決方案進行修復。我不是100%確定它可以適用於所有情況,並且此解決方案沒有任何缺點。但目前它的工作方式與預期完全一致。
Alex
我剛剛爲該問題發送了一個修補程序。看看請求。希望這有助於解決您的問題。
https://github.com/amatsuda/kaminari/pull/155/files
與以往theTRON例如:
class User
include Mongoid::Document
embeds_many :bookmarks
end
class Bookmark
include Mongoid::Document
field :created_at, :type => DateTime
embedded_in :user
end
下面,將得到您在您的文章中描述的錯誤:
@user.bookmarks.desc(:created_at).page(params[:page])
而NEX一會正常工作:
@user.bookmarks.page(params[:page]).desc(:created_at)
我希望它有幫助。
你有什麼樣的mongoid版本? – Anatoly
與嵌入式編程無關。重新標記。 –