Ole*_*jov 2 gem ruby-on-rails devise
我正在使用gem Audited来记录对模型所做的任何更改.但是,当我试图区分普通用户和管理员正在进行的更改时,我遇到了一个问题.当current_user为nil时,我不知何故需要告诉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
Run Code Online (Sandbox Code Playgroud)
要使用current_user以外的方法,请将以下内容放在一个初始化器中:
Audited.current_user_method = :authenticated_user
Run Code Online (Sandbox Code Playgroud)
在application_controller.rb中,您可以添加一个方法来检查nil值current_user
def current_user_or_admin
current_user || current_admin
end
Run Code Online (Sandbox Code Playgroud)
在初始化程序中,像config/initializers/audited.rb这样的东西添加
Audited.current_user_method = :current_user_or_admin
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1292 次 |
| 最近记录: |