ruby-on-rails – 在ROR中记录用户活动
发布时间:2020-12-16 20:33:09 所属栏目:百科 来源:网络整理
导读:我有一个应用程序,目前有两种类型的用户,管理员和供应商,我想记录他们的活动 "TestAdmin" viewed transaction"TestAdmin" added a new vendor"TestAdmin" edited a Transaction"TestVendor" added a new Transaction"TestAdmin" approved Transaction "TestA
我有一个应用程序,目前有两种类型的用户,管理员和供应商,我想记录他们的活动
"TestAdmin" viewed transaction "TestAdmin" added a new vendor "TestAdmin" edited a Transaction "TestVendor" added a new Transaction "TestAdmin" approved Transaction "TestAdmin" rejected Transaction etc... “TestAdmin”是管理员,“TestVendor”是供应商 但我不知道我应该遵循什么方法 我在想这个 在DB中添加一个Activity表,其中包含以下字段 user_id browser session_id ip_address action params 并打电话 before_filter :record_activity 记录所有活动 但不知道如何创建如上所述的消息 此外,我想知道是否有任何错误发生,何时和为什么,所以为此,我采取浏览器字段来确定代码是否不工作在IE等,但这只是一个错误轨道字段. 请帮助和指导一些很好的方式来实现这一点. 谢谢 解决方法
好的,这是我做的…
先创建表 create_table "activity_logs",:force => true do |t| t.string "user_id" t.string "browser" t.string "ip_address" t.string "controller" t.string "action" t.string "params" t.string "note" t.datetime "created_at" t.datetime "updated_at" end 在应用程序控制器中创建功能 def record_activity(note) @activity = Activity_Log.new @activity.user = current_user @activity.note = note @activity.browser = request.env['HTTP_USER_AGENT'] @activity.ip_address = request.env['REMOTE_ADDR'] @activity.controller = controller_name @activity.action = action_name @activity.params = params.inspect @activity.save end 然后从任何需要的控制器调用上述函数 class AccountsController < ApplicationController load_and_authorize_resource # POST /accounts # POST /accounts.json def create @account = Account.new(params[:account]) respond_to do |format| if @account.save record_activity("Created new account") #This will call application controller record_activity format.js { head :ok } else format.js { render json: @account.errors,:error => true,:success => false } end end end 所以问题解决了…… 感谢所有的帮助…. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |