Ruby on rails NoMethodError(JsonWebToken:Module的未定义方法“encode”)

Ruby on rails NoMethodError(JsonWebToken:Module的未定义方法“encode”),ruby-on-rails,ruby,jwt,Ruby On Rails,Ruby,Jwt,在我将rails版本从4.2升级到5.0之后,我面临JWT gem文件的问题 谁能帮帮我吗 我使用的是Rails-5.0.7.2 Ruby-2.5.3 JwT-2.2.1 require 'jwt' payload = { data: 'test' } token = JWT.encode payload, nil, 'none' Traceback (most recent call last): 8: from bin/rails:11:in <main>' 7: from

在我将rails版本从4.2升级到5.0之后,我面临JWT gem文件的问题

谁能帮帮我吗

我使用的是Rails-5.0.7.2 Ruby-2.5.3 JwT-2.2.1

require 'jwt'

payload = { data: 'test' }

token = JWT.encode payload, nil, 'none'

Traceback (most recent call last):
8: from bin/rails:11:in <main>' 7: from bin/rails:11:in require'
6: from /home/sahu/.rvm/gems/ruby-2.5.3/gems/railties-5.0.7.2/lib/rails/commands.rb:18:in <top (required)>' 5: from /home/sahu/.rvm/gems/ruby-2.5.3/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:49:in run_command!'
4: from /home/sahu/.rvm/gems/ruby-2.5.3/gems/railties-5.0.7.2/lib/rails/commands/commands_tasks.rb:78:in console' 3: from /home/sahu/.rvm/gems/ruby-2.5.3/gems/railties-5.0.7.2/lib/rails/commands/console_helper.rb:9:in start'
2: from /home/sahu/.rvm/gems/ruby-2.5.3/gems/railties-5.0.7.2/lib/rails/commands/console.rb:65:in start' 1: from (irb):3 NoMethodError (undefined method encode' for JsonWebToken:Module)

最后,我发现了问题所在。
在升级rails版本之前,我有JWT Gem,升级rails版本之后。我添加了一个新的gem intuit oauth。此gem依赖于json\u web\u令牌gem。所以在我安装intuit oauth gem之后,它会自动安装json\u web\u令牌gem。由于这个gem,JWT对象被更改了。就像我在控制台中单击access JWT一样。它作为JsonWebToken对象返回。也许这个gem胜过jwtgem。因此,作为一个临时解决方案,我删除了intuit oauth gem。而且效果很好。谢谢。

您只有这些代码吗?我在我的环境中运行这个程序,效果很好。因此,请提供更多的代码/上下文。您有与我相同的版本吗?就像rails、ruby和JwTyes一样,这就是为什么我问你更多的细节谢谢你的回答。正如我前面提到的,我正在使用-Rails-5.0.7.2-Ruby-2.5.3-JwT-2.2.1,您需要的更多细节是什么?您可以将intuit oauth gem放在JwT gem之前。我会给你答案的。
/home/sahu/.rvm/gems/ruby-2.5.3/gems/json_web_token-0.3.5/lib/json_web_token.rb:36: warning: already initialized constant JWT
/home/sahu/.rvm/gems/ruby-2.5.3/gems/jwt-2.2.1/lib/jwt/base64.rb:5: warning: previous definition of JWT was here