0

私は 3 つの基本的なモデルを持っています: ユーザー、パーミッション、および UserPermissions と呼ばれる関連付けモデルです。has_many :permissions, through :user_permissions

私のユーザー許可テーブルには、user_id、permission_id、およびビットマスクである特権属性も保持されています。ここで、ユーザーにアクセス許可を問い合わせるときは、次のようにします。

@permissions = user.permissions

そして、その特定のユーザーに関連付けられたアクセス許可の素晴らしいコレクションを取得します。私がやりたいことは、結果に特権フィールドを追加することでもあるので、この結果の代わりに

{
  "id": 1,
  "name": "User permissions",
  "short_name": "user_permissions"
}

私はこのようなものが必要です:

{
  "id": 1,
  "name": "User permissions",
  "short_name": "user_permissions",
  "privilege": "..whatever the bitmask converts to"
}

私が理にかなっていることを願っています。何か案は?

4

1 に答える 1

0

アクセス許可クラスにメソッドを追加して、ハッシュを構成することができます。何かのようなもの

class Permission
    ....

    def attributes_with_privilege
        attributes.merge( 'privilege': user_permission.privilege )
    end

   ...
end
于 2012-06-19T08:38:09.757 に答える