3

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

4

1 回答 1

6

您可以指定 Audited gem 用于分配的方法user。自述文件中的相关位如下:


当前用户跟踪

如果您在 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中,您可以添加一个方法来检查 nil 值current_user

def current_user_or_admin
  current_user || current_admin
end

在初始化程序中,添加类似config /initializers/audited.rb

Audited.current_user_method = :current_user_or_admin
于 2013-07-18T13:57:10.083 回答