2017-01-23 11 views
0

ブログアプリケーションで承認のためにPunditを使用する場合、ユーザーと管理者の異なるユーザーテーブルを使用して認証するDeviseでは、 : Pundit for Rails 5を使用する2つの異なるユーザーテーブル(ユーザーと管理者)による承認

  • 管理者は、誰のポストに私がオンラインに見てきた例では
  • を更新することができます

    • ユーザーは、自分の記事を更新することができ、そのような複数のユーザのテーブルを処理するための規定があるようには思えません管理者とユーザーとしてされている、彼らは別のテーブルにあるので

      def initialize(COULD BE A USER OR ADMIN, scope) 
          @user = USER OR ADMIN 
          @scope = scope 
      end 
      
      def update? 
          return true if user is either resource.user or ANY ADMIN 
      end 
      

    答えて

    1

    、私は、ユーザーや管理者を想定しています。それぞれのテーブルに固有のものでUserPolicyとAdminPolicyを持つ

    は簡単ですが、どのようにPostPolicyのような機能のものを実装しません異なるクラスでも、is_a?を使用して確認できます。

    def update? 
        @user == resource.user || @user.is_a?(Admin) 
    end 
    
    関連する問題