認証エンジンとして cancan を使用しています。
私はすでにユーザーに役割を持っています:
ROLES = %w[admin normal author corp]
ロールを追加して確認する方法もあります。
#cancan
def roles=(roles)
self.roles_mask = (roles & ROLES).map { |r| 2**ROLES.index(r) }.sum
end
def roles
ROLES.reject do |r|
((roles_mask || 0) & 2**ROLES.index(r)).zero?
end
end
def is?(role)
roles.include?(role.to_s)
end
そして、私は# roles_mask :integerUser モデルにあります。
ただし、after_save :add_normal_roleユーザーに通常の役割を割り当てる が必要です。
基本的に、各ユーザーに役割を割り当てる方法がわかりません。
これは私が持っているものですが、動作しません:
private
def add_normal_role
self.roles=(ROLES[1])
end
ありがとう