【问题标题】:audited gem: switch between current_user and current_admin审核的 gem:在 current_user 和 current_admin 之间切换
【发布时间】:2013-07-18 13:37:53
【问题描述】:

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

【问题讨论】:

    标签: ruby-on-rails devise gem


    【解决方案1】:

    您可以指定 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 中,您可以添加一个方法来检查 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
    

    【讨论】:

      猜你喜欢
      • 2018-06-15
      • 2016-03-08
      • 2019-08-09
      • 1970-01-01
      • 2015-11-08
      • 2010-10-28
      • 2013-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多