0

我对已审核的 gem 有疑问。这是两个问题合而为一。我在我的应用程序中安装并配置了审核的 gem,但是当我删除数据库并再次运行 migrate 和 seed 时,数据库中的 user_id 和 user_type 字段另外为 NULL,当我通过 devise 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 optional: true,但错误仍然存​​在。

我的应用程序在我的 github 上: https ://github.com/eltonsantos/auth-rails

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

4

1 回答 1

1

我拉出了你的 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

让我知道这是否也为您解决了问题。

蟒蛇排序!

于 2022-02-02T17:08:50.033 回答