NoMethodError(JsonWebToken的未定义方法`encode':模块):

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NoMethodError(JsonWebToken的未定义方法`encode':模块):相关的知识,希望对你有一定的参考价值。

我指的是this blog用于基于令牌的身份验证。我正在尝试访问我的jsonwebtoken.rb上面博客中指定的app/controllers/api/v1/registrations_controller.rb方法。

class Api::V1::RegistrationsController < Api::V1::BaseController

  def create
      auth_token = JsonWebToken.encode({user_id: user.id})
    end
  end
end

我的jsonwebtoken.rb文件位于上面提到的博客中指定的app/lib文件夹中。我不知道如何在我的不同控制器中使用jsonwebtoken.rb的方法。

我还添加了config.autoload_paths << Rails.root.join('lib')来自动加载config/application.rb中的文件。请帮我。在某个地方,我错过了这个概念。

答案

我认为问题是在文件命名约定中看到你的文件名是jsonwebtoken.rb但是类是JsonWebToken所以文件名将json_web_token.rb看看控制台

2.3.4 :019 > "JsonWebToken".underscore
 => "json_web_token" 

Rails UnderScore方法。

进行任何更改后重新启动服务器。

这是RESTful JSON API With Rails 5非常好的教程,你可以检查一下。

以上是关于NoMethodError(JsonWebToken的未定义方法`encode':模块):的主要内容,如果未能解决你的问题,请参考以下文章

NoMethodError:AjaxDatatablesRails:Module 的未定义方法“配置”

Ruby - NoMethodError:未定义的哈希方法

NoMethodError:升级到 rake 11 后未定义方法“last_comment”

NoMethodError: nil:NilClass / 'additional_paths' [capistrano+webpacker] 的未定义方法“+”

大礼包安装 NoMethodError

最佳就地宝石的 NoMethodError