繁体   English   中英

审计 gem:在 current_user 和 current_admin 之间切换

[英]audited gem: switch between current_user and current_admin

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

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


当前用户跟踪

如果您在 Rails 应用程序中使用 Audited,则请求中所做的所有经过审核的更改都将自动归因于当前用户。 默认情况下,Audited 使用控制器中的 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM