小编thi*_*vsk的帖子

FactoryGirl如何添加具有不同角色的多个对象

class Ability

include CanCan::Ability

def initialize(user)

user ||= User.new # guest user

if user.has_role?  :student
  can :create, Atendimento
end

if user.has_role?  :professor
  can :create, Atendimento
end
if user.has_role? :administrative
  can [:read, :create], [Atendimento]
  can [:edit, :update], Atendimento
  can :manage, [Type, Place]
 end
if user.has_role? :admin
  can :manage, :all
end
end
end
Run Code Online (Sandbox Code Playgroud)

和我的工厂

FactoryGirl.define do
factory :user do |f|
f.name "Alessandro"
f.username "alessandrocb"
f.matricula "123456789"
f.password "123456789"
f.password_confirmation "123456789"
f.after(:create) {|user| user.add_role(:student)}
end
Run Code Online (Sandbox Code Playgroud)

我需要那些模拟获得所有角色,但现在我只能学生角色

我用rspec测试

subject(:ability){ Ability.new(user) }
let(:user){ nil } …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails cancan rolify factory-bot

3
推荐指数
1
解决办法
1082
查看次数

标签 统计

cancan ×1

factory-bot ×1

rolify ×1

ruby ×1

ruby-on-rails ×1