私のデータモデルでは:
Company has_many offices
Employee has_many offices, through: :employee_office
(これは、会社の管理者が特定のオフィスの従業員に許可を与え、他のオフィスには許可しない方法です)
Office has_many appointments
と
Appointment belongs_to office
での作品が で作成された場合にのみ でアクションを実行CanCanCan
できるようにする機能を定義したいと思います。Employee
Appointment
Employee
Office
Appointment
この疑似コードのようなもの:
Employee
can :manage Appointment, Employee.offices.include?(Appointment.office)
これは私がこれまでに持っているものです:
class EmployeeAbility
include CanCan::Ability
def initialize(employee)
can :read, Company, :id => employee.company.id
can :read, Office, :id => employee.company.id
#I'd like to include the above psuedocode here, but I'm not sure how to structure it
end
end
ありがとう!