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

时间:2018-05-28 05:17:57

标签: ruby-on-rails jwt

我指的是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中的文件。请帮我。在某个地方,我错过了这个概念。

1 个答案:

答案 0 :(得分:2)

我认为问题在于文件命名约定,请看文件名为jsonwebtoken.rb,但类为JsonWebToken,因此文件名将json_web_token.rb查看控制台

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

Rails UnderScore方法。

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

以下是RESTful JSON API With Rails 5非常好的教程,您可以查看。