【问题标题】:No implicit conversion of nil into String on MessageVerifierMessageVerifier 上没有将 nil 隐式转换为字符串
【发布时间】:2019-03-13 02:07:05
【问题描述】:

最近我收到了一个在 Ruby (Rails) 上运行的新项目(实际上是 iOS 应用程序的后端)。

我在模型(用户)中有一部分代码:

155:  def self.create_access_token(user)
156:    verifier.generate(user.id)
157:  end

在间接使用该部分代码的某些操作之后,在“乘客”输出中,我看到以下错误会终止一切:

TypeError (no implicit conversion of nil into String):
  app/models/user.rb:156:in `create_access_token'
  app/models/user.rb:139:in `access_token'
  app/controllers/mailing_controller.rb:68:in `send_charts'

verifierActiveSupport::MessageVerifier 的一个实例

我完全确定user.id 包含有效值(我已经用$stderr.puts 对其进行了测试)

我对这种语言完全陌生,我很难弄清楚为什么会出现这个错误。希望有人能帮忙。

谢谢!

【问题讨论】:

  • 我对这个假设有疑问:“我完全确定 user.id 包含有效值(我已经用 $stderr.puts 对其进行了测试)”。可以肯定的是,您能否在您的函数中(verifier.generate(user.id) 之前)写下“puts user”并告诉我答案,好吗?

标签: ruby-on-rails ruby


【解决方案1】:

好吧,可能 user_id 为 nil。无论如何,请查看rubyonrails api 并验证生成方法。

我们实际上可以深入研究 generate 方法。使用 pry-rails gem 方便调试。

【讨论】:

    【解决方案2】:

    很可能您没有在secrets.yml 中设置access_token_secret

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-25
      相关资源
      最近更新 更多