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
添加幾個對象和我廠FactoryGirl如何與不同的角色
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
我需要那些嘲笑收到的所有角色,但現在我只能學生角色
我使用RSpec
測試subject(:ability){ Ability.new(user) }
let(:user){ nil }
context "when is an User" do
let(:user) { FactoryGirl.create(:user) }
發生了什麼事情是這樣的:我只能用rspec測試只有1張紙,但想用全部測試t他可以掃描,我需要創建具有所有這些可能性爲不同角色的工廠
它的一個很好的解決方案,感謝求助= D我不知道這個特性的存在:學生做了 之後(:create){| user | user.add_role(:student)} end trait:professor do after(:create){| user | user.add_role(:professor)} 結束 – thiagovsk
yu能起來我的帖子嗎? – thiagovsk