gpt4 book ai didi

ruby-on-rails - 经审计的 gem : switch between current_user and current_admin

转载 作者:行者123 更新时间:2023-12-04 02:10:59 25 4
gpt4 key购买 nike

我正在使用 gem Audited ,用于记录对模型所做的任何更改。但是,当我试图区分普通用户所做的更改和管理员所做的更改时,我遇到了一个问题。当 current_user 为 nil 时,我需要以某种方式将 Audited 告诉用户 current_admin 方法,但我想不出办法去做。

最佳答案

您可以指定 Audited gem 用于分配 user 的方法。 README 中的相关部分如下:


当前用户跟踪

如果您在 Rails 应用程序中使用 Audited,则在请求中所做的所有经过审计的更改将自动归因于当前用户。默认情况下,Audited 使用 Controller 中的 current_user 方法。

class PostsController < ApplicationController
def create
current_user # => #<User name: "Steve">
@post = Post.create(params[:post])
@post.audits.last.user # => #<User name: "Steve">
end
end

要使用 current_user 以外的方法,请将以下内容放入初始化器中:

Audited.current_user_method = :authenticated_user

在您的 application_controller.rb 中,您可以添加一个方法来检查 current_user 中的 nil 值

def current_user_or_admin
current_user || current_admin
end

在初始化器中,像config/initializers/audited.rb 添加

Audited.current_user_method = :current_user_or_admin

关于ruby-on-rails - 经审计的 gem : switch between current_user and current_admin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17725055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com