【发布时间】:2018-06-15 23:44:28
【问题描述】:
我在我的应用程序中使用 Audited gem 来跟踪用户日志。除当前用户跟踪外,一切正常。
就我而言,我有 2 个模型:Instructor 和 Student。 Instructor 将是current_admin_user,我需要手动找到学生。
为了克服这个问题,我尝试覆盖 current_user_method 并在初始化程序中创建一个 audited.rb 文件,其内容如下:
Audited.current_user_method = :current_admin_user
这工作正常,但是当我使用任何其他方法时,例如 current_user_or_student ...
Audited.current_user_method = :current_user_or_student
在application_controller.rb ...
def current_user_or_student
current_admin_user || InstructorStudent.find_by_id(id)
end
它不会进入这个方法,即使current_admin_user 也不会存储在审计中。
为什么在application_controller.rb 中覆盖我的current_user_or_student 方法时没有调用它?
【问题讨论】:
-
我查看了你的github个人资料,但我不知道你说的是哪个项目
-
@FabrizioBertoglio 这个项目不在我的 github 个人资料中。你需要项目来解决我的问题吗?
-
可以分享详细的日志吗?
-
我没有任何日志,但是当我在 audited.rb 中使用
current_admin_user时,它正在存储用户,当我使用自定义方法current_user_or_student时,它没有存储。即使退出也不适用于该方法 -
能否提供
current_admin_user的出处?您是否在初始化程序中设置Audited.current_user_method?或者您是否尝试在运行时动态更改它?
标签: ruby-on-rails acts-as-audited