我有一个应用程序,目前有两种类型的用户,管理员和供应商,我想记录他们的活动
"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
所以问题解决了……
感谢所有的帮助….