2016-03-29 17 views
0

最近、Ruby(Rails)で動作する新しいプロジェクト(iOSアプリケーションのバックエンド)を受け取りました。MessageVerifierのStringへのnilの暗黙的な変換なし

私はモデル(ユーザー)でコードの一部を持っている:

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

間接的にコードの一部を使用して、いくつかのアクションの後、「旅客」出力に私はすべてを終了し、次のエラーを参照してください

verifier

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' 
私は user.idに有効な値が含まれていることを完全に確信している ActiveSupport::MessageVerifier

のインスタンスである(私は精巣をしましたd it with $stderr.puts

私はこの言語を全く読んでいないので、このエラーがなぜ表示されるのかは分かりません。誰かが助けることを願っています。

ありがとうございます!

+1

私はこの仮定に疑問を抱いています。「user.idには有効な値が含まれていると確信しています($ stderr.putsでテストしました)」。ちょうど確かに、関数に(verifier.generate(user.id)の前に) "puts user"と書いて答えを教えてください。 – Pholochtairze

答えて

0

まあ、user_idがnilの場合があります。とにかくrubyonrails apiをチェックし、生成方法を確認してください。

私たちは実際に内部生成メソッドを掘ることができます。簡単なデバッグのためにpry-rails gemを使用してください。

関連する問題