我正在测试用户在创建后是否具有“用户”的默认角色。对于角色,我有 cancan 并设计了身份验证。
在我的用户模型中,我剪掉了这个
after_create :default_role
private
def default_role
self.roles << Role.find_by_name("user")
self.save
end
在 user.spec.rb 这个
it 'should have default role' do
role = Role.create! name: 'user'
user = User.create!(name: 'Andrew', email: "asdf@asds.sd", password: "12341234", password_confirmation: '12341234')
user.roles.count.should > 0
结尾
和 rspec 输出
Failure/Error: user.roles.count.should > 0
expected: > 0
got: 0
所以我真的通过控制台调试这个
user = User.create! name: 'Andrew', email: "asdf@asds.sd", password: "12341234", password_confirmation: '12341234'
成功创建新用户实例后,我运行
user.has_role? :user
它返回了真实...
有任何想法吗?