Ruby on rails 如何在rails模型中访问活动管理员当前用户
使用ActiveAdmin2.8.0,我想访问模型中的当前用户。我有一个用于记录用户操作的日志模型:Ruby on rails 如何在rails模型中访问活动管理员当前用户,ruby-on-rails,activeadmin,ruby-on-rails-6,Ruby On Rails,Activeadmin,Ruby On Rails 6,使用ActiveAdmin2.8.0,我想访问模型中的当前用户。我有一个用于记录用户操作的日志模型: create_table "logs", force: :cascade do |t| t.string "desc" t.string "volunteer" t.string "animal" t.string "stateful_role_state"
create_table "logs", force: :cascade do |t|
t.string "desc"
t.string "volunteer"
t.string "animal"
t.string "stateful_role_state"
t.string "from"
t.string "to"
t.string "msg"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.integer "admin_user_id"
t.index ["admin_user_id"], name: "index_logs_on_admin_user_id"
end
在我的rails应用程序中,我想调用Log.event(志愿者、动物、工作流状态、描述)
,在写入数据库之前,我想在方法中添加管理员用户id
:
def self.event(volunteer, animal, workflow_state, desc)
l = Log.create(volunteer: volunteer.fullname,
animal: animal.name,
stateful_role_state: workflow_state,
desc: desc)
l.admin_user_id = current_admin_user.id
l.save!
end
如果我从ActiveAdmin注册页面调用Log.event,我可以使用当前的\u admin\u用户调用它。但因为这是我想要写入每个记录的数据,所以让日志模型来做似乎更枯燥
我得到的错误是:
NameError in AssignmentsController#prompt
undefined local variable or method `current_admin_user' for #<Class:0x00007f9fde1c00b8> Did you mean? current_scope
AssignmentsController#提示符中的name错误
未定义的局部变量或方法“current_admin_user”用于#您的意思是?当前范围
好奇是否有更聪明或更干净的方法来解决这个问题。事先非常感谢。我同意