我試圖測試一個簡單的索引視圖,裏面有以下代碼:測試使用CanCan和Devise與RSpec的視圖
- if can? :destroy, MyModel
%th Options
MyModelsController
有以下選項(繼承資源+ 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
和控制器中,但沒有任何效果。
我不知道我怎麼錯過了它,但它完美,謝謝! – farnoy
我也必須存'view.current_ability'以及'controller',但這是完美的 – Gareth
賓果!!!!!!!!!! –