私はRailsアプリケーションに取り組んでおり、2つの異なるタイプの役割が必要です。1つは従業員で、もう1つは管理者です。
Cancanのドキュメントによると、アプリケーションにuserまたはcurrent_userメソッドがあることを前提としています。
では、cancanを使用して、アプリで従業員とマネージャーの役割を設定するにはどうすればよいですか?
私はRailsアプリケーションに取り組んでおり、2つの異なるタイプの役割が必要です。1つは従業員で、もう1つは管理者です。
Cancanのドキュメントによると、アプリケーションにuserまたはcurrent_userメソッドがあることを前提としています。
では、cancanを使用して、アプリで従業員とマネージャーの役割を設定するにはどうすればよいですか?
このようにしてください
これをアプリケーションヘルパーに書き込む
def is_employee?(user)
emp_role = Role.find(:first, :conditions => ["name = ?", "Employee"])
return user.roles.include?(emp_role)
end
def is_admin?(user)
admin_role = Role.find(:first, :conditions => ["name = ?", "Admin"])
return user.roles.include?(admin_role)
end
そして、アビリーはこのように見えます
class Ability
include CanCan::Ability
include ApplicationHelper
def initialize(user)
# Define abilities for the passed in user here. For example:
#
user ||= Employee.new # guest user (not logged in)
if is_admin?(user)
can :manage, :all
# cannot :manage, IpAddress
elsif is_employee?(user)
#your code
end
役割の定義については、それを参照してください
http://stackoverflow.com/questions/10222400/rails-adding-an-admin-role-using-devise-who-can-see-all-the-users/10222813#10222813
それは確かに機能します...