Как проверить способность cancan для действия create с параметрами? - PullRequest
2 голосов
/ 09 августа 2011

Моя способность такая:

def initialize(user)
  partner_id ||= user.partner.id
  can :create, Employee, :partner_id => partner_id

Это в блоке before:

before(:each) do
  @employee = Factory :employee, role: "manager"
  @partner = @employee.partner
  @some_other_partner = Factory :partner
  @subject = EmployeeAbility.new( @employee )
end

Моя положительная спецификация такая (Эта проходит):

it { @subject.should be_able_to(:create, Employee, partner_id: @partner.id ) }

Моя отрицательная спецификация была бы такой (эта не работает):

it { @subject.should_not be_able_to(:create, Employee, partner_id: @some_other_partner.id ) }

Как мне объявить способность таким образом, чтобы я мог проверить, что созданный сотрудник принадлежит конкретному партнеру, а недругому партнеру?

1 Ответ

1 голос
/ 09 августа 2011

Вы можете проверить способность, используя экземпляр класса, а не сам класс:

can? :create, Employee.new(:partner_id => 3)
...