ruby-on-rails - NoMethodError:#User:0x000055ce01dcf0a8 的未定义方法 `current_sign_in_at' 使用 Devise_token_auth rails gem 不起作用
问题描述
NoMethodError:#User:0x000055ce01dcf0a8 的未定义方法“current_sign_in_at”
我认为这是某种会话方法错误
我有一个用于前端的 angular6 应用程序和用于后端的 rails,所以对我来说最好的选择是选择 devise_token_auth 和 ng_token_auth 进行用户身份验证。
我安装了 devise_token_auth gem,然后在终端中执行这行代码
“rails 生成 devise_token_auth:安装用户身份验证”
在迁移时出现错误,我通过添加解决了这个问题
“扩展设计::模型”
到 USER 模型,然后迁移工作,然后我在后端创建了一个用户并尝试使用邮递员调用 sign_in 并出现错误“NoMethodError:未定义的方法 `current_sign_in_at' for #User:0x000055ce01dcf0a8”
我希望用户使用此 gem 或其他一些 gem(如果存在)进行身份验证
解决方案
我最近遇到了这个问题,结果我的迁移中没有可跟踪的字段。有两种方法可以解决此问题:
选项一。添加将可跟踪字段添加到用户的新迁移
## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.inet :current_sign_in_ip
t.inet :last_sign_in_ip
运行 rake db:migrate
第二种选择:运行向下迁移
从此命令开始 - 添加您的迁移版本号
rake db:migrate:down VERSION=xxxxxxxxxxxxxx
然后,您应该能够将可跟踪字段添加到迁移文件中,然后运行
rake db:migrate up VERSION=xxxxxxxxxxxxxx
运行 rake db:migrate
推荐阅读
- database-design - 如何使关系在密码中分割足球比分
- python - 如何在 python 中从 KafkaConsumer.poll() 获取 ConsumerRecord
- java - Apache Commons MultiMap 已弃用,我现在应该使用什么?
- reactjs - react 无法从 api 获取数据
- blockchain - 源文件需要不同的编译器版本:Truffle
- ios - UITableView 覆盖
- swift - 如何删除导航栏模糊效果 - swift
- html - 表格单元格与子输入相同的宽度(键入文本)
- python - 如何将变量传递给 pyspark 中的 spark.sql 查询?
- javascript - 如何告诉 js 等待完成所有 fetch 命令然后继续执行全局代码?