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