我希望能够专门为开发和测试使用TestUser
模型,它的行为与我的普通用户模型完全相同,只是它始终进行身份验证。
这里的关键问题是要有TestUser
一直呼吁用户类的方法,并期待它的类级实例变量,就好像是一个正常的用户,并没有做到这一点通过cattr_accessor
即:使用普通的红宝石对象委托ActiveRecord对象
class User
class << self
attr_accessor :foo
end
end
class TestUser ?< ??
??
end
---
User.foo = 'bar'
TestUser.foo => 'bar'
User.new.authenticate?('password') => maybe, runs authentication
TestUser.new.authenticate?(_) => true
我知道我可以通过在测试和开发中将用户扩展到始终进行身份验证来做我想做的事情,但是我想知道是否可以使用该额外的类来完成此任务。
这不一定是rails或activerecord问题,但是让我感到的是,如果我将#create或#build从TestUser委派给用户,那么我无法正确地扩展创建的对象。 – lambdabutz 2011-01-26 22:57:53