cancanを使用して、表示されるデータを特定のユーザーグループに制限する際に問題が発生しました。
私のユーザーは多くの製品を持っています。そして、製品には多くのバウチャーがあります。
私のroutes.rbにはこれがあります:
resources :products do
resources :vouchers
end
ability.rb:
can [:create, :update, :read ], Voucher, :product => { :user_id => user.id }
そして私のバウチャーコントローラーでは:
def index
...
if params[:product_id]
@voucher = Voucher.find_all_by_product_id(params[:product_id])
end
...
end
最後に、私の見解では、現在のユーザーに関連付けられている製品グループのバウチャーのリストを表示しようとしています。
例えば:
http://localhost:3000/products/eef4e33116a7db/voucher
これにより、製品グループのバウチャーが一覧表示されますが、すべてのユーザーがすべてのバウチャー/製品を表示できます。
私の能力は間違っていると思います。助けてください :)