首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NameError:未初始化常量状态::UserBuilder::NilClassUser,您的意思是?NilClass

NameError:未初始化常量状态::UserBuilder::NilClassUser,您的意思是?NilClass
EN

Stack Overflow用户
提问于 2020-04-09 08:46:15
回答 1查看 110关注 0票数 0

这是我的密码:

代码语言:javascript
复制
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

我现在几乎在每个测试中都会收到这个错误:

失败/错误:

代码语言:javascript
复制
@statuspage_user = "Statuspage::UserBuilder::#{user.class.name}User".constantize.new(user)

NameError:未初始化常量状态::UserBuilder::NilClassUser,您的意思是?NilClass

否则,代码将无任何问题地运行。

EN

回答 1

Stack Overflow用户

发布于 2020-06-30 21:24:19

显然,您希望将一个user传递给UserBuilder.new,后者是类MerchantEmployeeConsumerRegistration的成员,但您将nil传递给'UserBulider.new`‘

所以问题不在UserBuilder.new本身,问题在于您要调用UserBuilder.new的位置。签入您构建user对象的测试。可能是它没有被成功的建造或发现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61117246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档