我试图测试一个简单的索引视图,其中包含以下代码:
- if can? :destroy, MyModel
%th Options
MyModelsController
有以下选项(继承资源 + CanCan + 设计):
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
和控制器中,但这没有任何效果。