在哪里列出 Rails 5.2 应用程序中未审计的列,其中包含已审计的 gem?
Where to list non audited columns in Rails 5.2 application with Audited gem?
我发现了 Audited gem,它可以轻松地对我的应用程序进行审计。但我对审核用户身份验证相关活动(由 Devise 提供)仍有疑问。
至少我想从属于用户模型的日志认证相关列中删除。我试过了:
User.non_audited_columns = [:encrypted_password, :reset_password_token, :confirmation_token, :unlock_token]
但我不确定将此声明放在哪里?
它在应用程序控制器中无效,并且在经过审核的初始化程序中服务器无法启动,因为 Devise 缺少 classes.
这种类型的配置应该在哪里进行?
谢谢你的帮助!
编辑: 审核所有模型,我实际上在 ApplicationRecord class 定义中插入了 "audited" 语句:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
include PgSearch::Model
audited
---
现在,根据 Hazhir 和 Widjajayd 的建议,我尝试在用户模型中覆盖它:
class User < ApplicationRecord
extend CsvHelper
# Audit trail setup
audited except: [:encrypted_password, :reset_password_token, :confirmation_token, :unlock_token]
---
因此,当仅在用户模型中需要 'audited' 时,包括异常列表,它会按预期工作。但是当在 ApplicationRecord 中声明并在 User 模型中覆盖时,异常将被忽略。
你能推荐一个有效的语法来覆盖 'audited' 包括列例外吗?
或者您会建议在每个相关模型上分别应用 'audited' 吗?
非常感谢您的帮助!
从 this documentation 您可以指定列如下
class User < ActiveRecord::Base
# All fields
# audited
# Single field
# audited only: :name
# Multiple fields
# audited only: [:name, :address]
# All except certain fields
# audited except: :password
end
对于您的情况,您可以按以下方式添加用户模型
class User < ActiveRecord::Base
audited except: [:encrypted_password, :reset_password_token, :confirmation_token, :unlock_token]
end
我发现了 Audited gem,它可以轻松地对我的应用程序进行审计。但我对审核用户身份验证相关活动(由 Devise 提供)仍有疑问。
至少我想从属于用户模型的日志认证相关列中删除。我试过了:
User.non_audited_columns = [:encrypted_password, :reset_password_token, :confirmation_token, :unlock_token]
但我不确定将此声明放在哪里? 它在应用程序控制器中无效,并且在经过审核的初始化程序中服务器无法启动,因为 Devise 缺少 classes.
这种类型的配置应该在哪里进行? 谢谢你的帮助!
编辑: 审核所有模型,我实际上在 ApplicationRecord class 定义中插入了 "audited" 语句:
class ApplicationRecord < ActiveRecord::Base
self.abstract_class = true
include PgSearch::Model
audited
---
现在,根据 Hazhir 和 Widjajayd 的建议,我尝试在用户模型中覆盖它:
class User < ApplicationRecord
extend CsvHelper
# Audit trail setup
audited except: [:encrypted_password, :reset_password_token, :confirmation_token, :unlock_token]
---
因此,当仅在用户模型中需要 'audited' 时,包括异常列表,它会按预期工作。但是当在 ApplicationRecord 中声明并在 User 模型中覆盖时,异常将被忽略。
你能推荐一个有效的语法来覆盖 'audited' 包括列例外吗?
或者您会建议在每个相关模型上分别应用 'audited' 吗?
非常感谢您的帮助!
从 this documentation 您可以指定列如下
class User < ActiveRecord::Base
# All fields
# audited
# Single field
# audited only: :name
# Multiple fields
# audited only: [:name, :address]
# All except certain fields
# audited except: :password
end
对于您的情况,您可以按以下方式添加用户模型
class User < ActiveRecord::Base
audited except: [:encrypted_password, :reset_password_token, :confirmation_token, :unlock_token]
end