0

プロジェクトに Rolify gem を追加し、正常に初期化しました。私は奇妙な問題に直面していますか?

ユーザー オブジェクトには、ユーザー ロールと管理者ロールがあります。

[1] pry(#<API::V1::PostPolicy>)> current_user.roles
=> [#<API::V1::Role:0x007fb70602be48
  id: "19810121-ea16-4d86-b36c-475fad0f7dec",
  name: "user",
  resource_id: nil,
  resource_type: nil,
  created_at: Thu, 02 Apr 2015 02:05:27 UTC +00:00,
  updated_at: Thu, 02 Apr 2015 02:05:27 UTC +00:00>,
 #<API::V1::Role:0x007fb705ee6858
  id: "a51c59e2-9dd0-4838-b159-1af11f7db15d",
  name: "admin",
  resource_id: nil,
  resource_type: nil,
  created_at: Thu, 02 Apr 2015 02:05:27 UTC +00:00,
  updated_at: Thu, 02 Apr 2015 02:05:27 UTC +00:00>]

管理者ロールを照会すると、奇妙な動作が見られます。

[2] pry(#<API::V1::PostPolicy>)> current_user.has_role? :admin
=> false

Pundit と Rolify を使用してポリシーを適用しようとしています。上記の出力はポリシー テストからのものです。

アップデート

rolifyでUUIDを使用しています。ローリファイの移行は以下の通りです。

   class RolifyCreateAPIV1Roles < ActiveRecord::Migration
      def change
        create_table :api_v1_roles, id: :uuid do |t|
          t.string :name
          t.uuid :resource_id
          t.string :resource_type

          t.timestamps
       end

    create_table(:api_v1_users_api_v1_roles, :id => false) do |t|
      t.uuid :user_id
      t.uuid :role_id
    end

    add_index(:api_v1_roles, :name)
    add_index(:api_v1_roles, [ :name, :resource_type, :resource_id ])
    add_index(:api_v1_users_api_v1_roles, [ :user_id, :role_id ])
  end
end
4

1 に答える 1