2013-02-24 30 views
0

我有一个model.rb模型,然后是一个无模式的控制器group_invitations.rb。如何为无模式控制器编写CanCan rspec?

GroupInvitationsController 

    before_filter :find_group_by_group_id 
    before_filter :authenticate_user! 
    before_filter :current_ability 
    authorize_resource :class => false 

    def current_ability 
    @current_ability ||= Ability.new(current_user, @group) 
    end 

当我写这个RSpec的:

it "should be able to create" do 
    ability = Ability.new(nil) 
    ability.should be_able_to(:create, GroupInvitation.new) 
    end 

RSpec的则有错误:

NameError: 未初始化的常量GroupInvitation

如何设置RSpec的测试这种无模式控制器?谢谢

回答

1

您需要致电@ability.should be_able_to(:create, :group_invitation)。您可以阅读documentation中使用无模型控制器时的授权内容。

这是相关部分:

class ToolsController < ApplicationController 
    authorize_resource :class => false 
    def show 
    # automatically calls authorize!(:show, :tool) 
    end 
end