1

テーブル内のすべての製品を表示するインデックス アクションがあり、現在のユーザーが製品の管理機能を持っている場合は、その製品へのリンクを提供します。

製品ドキュメントは非常に大きくなる可能性があるため、クエリで .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 の配列です。

4

0 に答える 0