4

カスタムアクション以外のすべてでcancanが正常に機能しています。正しく保護されていない upload_photos アクションがありました。私は、ability.rb ファイルに次のような非常に基本的なテスト アクションを追加しました。

can :test, User, :id => user.id

しかし、何らかの理由で常にtrueと評価されるため、次のように変更しました

can :test, User, :email => 'a@a.com'

繰り返しますが、常に true と評価されます。

ここでcancanが正しく機能しない理由を知っている人はいますか?

私のユーザーコントローラーには、上部に次のものがあります。

load_and_authorize_resource

前もって感謝します。

解決:

Cancan の load_and_authorize_resource はカスタム アクションに干渉するため、次のようにする必要があります。

load_and_authorize_resource :except => [:test]

そして、テストアクションで:

authorize! :test, @user
4

0 に答える 0