在MessageVerifier上没有将nil隐式转换为String

时间:2016-03-29 12:28:53

标签: ruby-on-rails ruby

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

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

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

在间接使用该部分代码的某些操作之后,在“Passenger”输出中,我看到以下错误终止了所有内容:

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对其进行了测试)

我对这种语言完全不熟悉,我很难弄清楚为什么会出现这种错误。希望有人可以提供帮助。

谢谢!

1 个答案:

答案 0 :(得分:0)

嗯,可能是user_id为零。无论如何,请查看rubyonrails api并验证生成方法。

我们实际上可以挖掘内部生成方法。使用pry-rails gem可以轻松调试。