テーブル内のすべての製品を表示するインデックス アクションがあり、現在のユーザーが製品の管理機能を持っている場合は、その製品へのリンクを提供します。
製品ドキュメントは非常に大きくなる可能性があるため、クエリで .only() を使用して、テーブルに関連するフィールドのみを取得したいと考えています。
.only() を使用すると、缶を取得できませんでしたか? 適切に機能するためのヘルパー。.only() を除外すると完全に機能します。缶に影響を与える可能性があると思われるすべての属性を .only() に追加しようとしましたか? 役に立たないヘルパー。
#products_controller.rb
...
def index
@products = Product.all #can? helper in view satisfied for proper products
@products = Product.all.only(:name, :_id, :price) # can? helper never satisfied
end
缶を満たすためにモデルインスタンスに必要な属性は何ですか? :ヘルパーを管理しますか?
編集:ability.rb
...
can :manage, Product, :_id.in => user.products
products は、ユーザー ドキュメントに保存されているユーザーに属する製品 ID の配列です。