我正在使用Devise和Rolify开发Rails 3.2.13应用程序,我需要具有3种用户类型,如下所示:
class User < ActiveRecord::Base
rolify
...
end
class UserTypeOne < User
....
end
class UserTypeTwo < User
....
end
class UserTypeThree < User
....
end
当我尝试为数据库添加种子时,可以正常创建用户,但是尝试向其中任何一个用户添加角色时都会出错:
user = UserTypeOne.find_or_create_by_email :name => 'User one', :email => 'userone@test.com', :password => 'userone', :password_confirmation => 'userone'
user.confirm!
user.add_role :admin
rake aborted!
undefined method `find_or_create_by' for nil:NilClass
但是用户插入正确...我在做什么错?
提前致谢!
最佳答案
尝试添加
self.adapter = User.adapter
给每个继承的类。
例:
class UserTypeOne < User
self.adapter = User.adapter
....
end
这对我有用。
关于ruby-on-rails - 带有设计和错误错误的Rails STI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15877424/