User_id 和 user_type 为 NULL 使用 gem 审计

User_id and user_type is NULL using gem audited

我对已审核的 gem 有疑问。这是两个问题合二为一。我在我的应用程序中安装并配置了已审核的 gem,但是当我删除数据库并再次 运行 迁移和播种时,数据库中的 user_id 和 user_type 字段为 NULL此外,当我通过设计 sign_up (new_registration_path) 注册用户时, user_id 和 user_type 在数据库中也被注册为 NULL,这会导致错误,可以在图片或此处看到:

undefined method `name' for nil:NilClass

错误行是这样的:

<%= f.select :user_name_cont, Audity.all.map { |u| [u.user.name] }.uniq, include_blank: true %>

我已经在我的 Audity 模型中放入了一个 belongs_to 可选:是的,但错误仍然存​​在。

我的申请在我的 github 上: https://github.com/eltonsantos/auth-rails

如何解决此错误?我认为的解决方案是当 运行 设置种子或注册新用户时,运行 一个 after_save 或 after_create 在 user_id 字段中放置一些默认 ID (也许是他自己的id),但我不确定这是否是最好的解决方案。

我提取了您的 rails 应用程序和 运行 数据库种子。修复您 user.rb 文件中的拼写错误后,错误消失了。

class User < ApplicationRecord

  audited
  # Include default devise modules. Others available are:
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :validatable

  enum role: { superadmin: 0, auditor: 1, manager: 2, registred: 3 }

  has_many :cars

  has_one_attached :avatar # removed a comma here

end

如果这也能解决您的问题,请告诉我。

蟒蛇分类!