Я пытался проверить простой индексный просмотр, который имеет следующий код внутри:
- if can? :destroy, MyModel
%th Options
MyModelsController
имеет следующие параметры (Inherited Resources + CanCan + Devise):
class MyModelsController < ApplicationController
inherit_resources
nested_belongs_to :mymodel
before_filter :authenticate_user!
load_and_authorize_resource :project
load_and_authorize_resource :mymodel, :through => :project
При запуске спецификаций он выходит из строя на линии - if can? :destroy, MyModel
Failure/Error: render
ActionView::Template::Error:
undefined method `authenticate' for nil:NilClass
Нет следа, ничего не основано на...
Я думал, что, возможно, я не авторизовался и не подписал при тестировании представлений, но Devise::TestHelpers
должен быть включен только в тесты контроллера (и то, что у меня есть).
Я пытался переопределить метод? как в Ability
, так и в контроллере, но это не дало эффекта.