这是我的密码:
module Statuspage
class UserBuilder
def initialize(user)
@statuspage_user = "Statuspage::UserBuilder::#{user.class.name}User".constantize.new(user)
end
def build
{
subscriber:
{
email: statuspage_user.email,
phone_country: statuspage_user.country_code,
phone_number: statuspage_user.phone_number,
skip_confirmation_notification: true
}
}
end
private
MerchantEmployeeUser = Struct.new(:user) do
def email
user.email
end
def country_code
user.country.code
end
def phone_number
user.phone_number
end
end
ConsumerRegistrationUser = Struct.new(:user) do
def email
user.email
end
def country_code
user.country.code
end
def phone_number
user.phone_number
end
end
attr_reader :statuspage_user
end
end
我现在几乎在每个测试中都会收到这个错误:
失败/错误:
@statuspage_user = "Statuspage::UserBuilder::#{user.class.name}User".constantize.new(user)NameError:未初始化常量状态::UserBuilder::NilClassUser,您的意思是?NilClass
否则,代码将无任何问题地运行。
发布于 2020-06-30 21:24:19
显然,您希望将一个user传递给UserBuilder.new,后者是类MerchantEmployee或ConsumerRegistration的成员,但您将nil传递给'UserBulider.new`‘
所以问题不在UserBuilder.new本身,问题在于您要调用UserBuilder.new的位置。签入您构建user对象的测试。可能是它没有被成功的建造或发现。
https://stackoverflow.com/questions/61117246
复制相似问题